我正在编写一个接受用户输入的代码,然后用户单击“输入另一个活动”按钮或“完成”按钮。我目前正在enterAnotherButton onClickListener中获取信息,但我需要能够将信息传输到doneButton onClickListener上,以通过意图发送给另一个Activity。这是我当前的代码:

public class EnterCourseActivity extends ActionBarActivity {
private MainActivity ma;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_enter_course);

    buttonClick();
}

public void buttonClick () {

    Button enterAnotherButton = (Button) findViewById(R.id.enterAnotherButton);
    enterAnotherButton.setOnClickListener(new View.OnClickListener() {
          int i = 1;
          public void onClick(View view) {
            EditText courseName;
            courseName = (EditText) findViewById(R.id.inputCourseName);
            String courseNameString = courseName.getText().toString();
            String[] courses = new String[i];
            courses[i - 1] = courseNameString;
            i++;
            courseName.setText("");
          }
        });

    Button doneButton = (Button) findViewById(R.id.doneButton);
    doneButton.setOnClickListener(new View.OnClickListener(){
        public void onClick(View view){

        }
    });

    //when user clicks doneButton execute this
        ArrayList<String> coursesArrayList = new ArrayList<String>(Arrays.asList(courses));
        Intent i = new Intent(EnterCourseActivity.this, MainActivity.class);
        i.putStringArrayListExtra("course", coursesArrayList);

        startActivity(i);
}

最佳答案

正如@feantury所建议的,只需创建一个类来容纳您要保存的信息。然后,单击doneButton即可访问同一对象。

public void buttonClick () {
    final SampleObj obj = new SampleObj("test");
    Button enterAnotherButton = (Button) findViewById(R.id.enterAnotherButton);
    enterAnotherButton.setOnClickListener(new View.OnClickListener() {
        int i = 1;
        public void onClick(View view) {
            obj.courseName = "test1";
        }
    });

    Button doneButton = (Button) findViewById(R.id.doneButton);
    doneButton.setOnClickListener(new View.OnClickListener(){
        public void onClick(View view){
            Log.d(TAG, "Result of obj: " + obj.courseName);
        }
    });
}

class SampleObj {
    String courseName;

    public SampleObj(String courseName) {
        this.courseName = courseName;
    }
}


单击enterAnotherButton会将obj.courseName更改为“ test1”,然后可以在doneButton的onClick中进行访问。

10-07 19:06