Android:ListView仅显示保存在数组中的最后值

时间:2014-12-14 12:39:04

标签: android arrays android-intent android-activity android-listview

您已尝试使用以下代码将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中获得最后输入的值。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

static关键字将起到魔力。

在您的activity02.java中更改列表声明,如下所示。我测试了它。它有效。

static ArrayList<String> list = new ArrayList<String>();