我正在编写一个接受用户输入的代码,然后用户单击“输入另一个活动”按钮或“完成”按钮。我目前正在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中进行访问。