您已尝试使用以下代码将EditText的用户输入值存储到另一个活动中的数组,并显示数组中的值。每次用户在 Activity01 的EditText中输入值。它应存储在 Activity02 的数组中,以显示用户输入的所有值。 ListView显示Array中最后输入的值。 这是我试过的代码。
Activity01.java
Button GrmBtnSave = (Button) findViewById(R.id.grmbtnsave);
Grmitem = (AutoCompleteTextView) findViewById(R.id.itemsearch);
GrmBtnSave.setOnClickListener(new OnClickListener(){
public void onClick(View view){
Intent intent = new Intent ( ItemSearch.this, MainInvoiceActivity.class );
intent.putExtra("GRM_ITEM", Grmitem.getText().toString());
startActivity(intent);
}
}
});
Activity02.java
ListView lv1;
ArrayList<String> list = new ArrayList<String>();
ArrayAdapter<String> adapter;
protected void onCreate(Bundle savedInstanceState) {
//.....
//.....
lv1=(ListView)findViewById(R.id.getalllist);
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, list);
lv1.setAdapter(adapter);
String val="";
if(getIntent().getStringExtra("GRM_ITEM")!=null && getIntent().getStringExtra("GRM_ITEM").length() > 0){
val = getIntent().getStringExtra("GRM_ITEM");
list.add(val);
}
adapter.notifyDataSetChanged();
}
我尝试解决它但仍然在EditText中获得最后输入的值。
感谢您的帮助
答案 0 :(得分:1)
static关键字将起到魔力。
在您的activity02.java中更改列表声明,如下所示。我测试了它。它有效。
static ArrayList<String> list = new ArrayList<String>();