1

我想问一下..

我有 2 个活动,只说 form1 和 form2,我在 form1 上有一个列表视图。我想用一个按钮将表单2中的edittext中的数据添加到表单1中的列表视图中。我该怎么做?

如果我使用 onResume() 用户必须将活动更改为 form1 以刷新列表视图..

我尝试使用此代码,但它似乎没有工作..

if(form1.listviewname != null)
{
        ((ArrayAdapter)form1.listviewname.getAdapter()).notifyDataSetInvalidated();
}

谢谢你!!

-------------------------------------------------- ----------已编辑----------

刚才我尝试在 form2 上使用此代码

list_list.add(myitem);
form1.listview.setAdapter(adapter1);                        
adapter1.notifyDataSetChanged();

myitem 是字符串,它从表单 2 的文本框中获取值

它似乎有效,但现在的问题是每次我将数据添加到 form1 中的 listview 时,它总是会覆盖 listview 中的现有数据。

我怎样才能解决这个问题?

谢谢你!!

解决 - - - - - - - - - - - - - - - - - - - - - - - - - -- 通过在 form2 上声明来解决

public static ArrayList<String> list_list = new ArrayList<String>(); 

public static ArrayAdapter<String> adapter1;

我添加了公共静态。

谢谢你!!!

4

1 回答 1

0

-假设Activity AListView并且Activity BEditTextwith Button

在活动 B 中:

Button mbutt = (Button)findViewById(R.id.button_mSubmit);
EditText mtext = (EditText)findViewById(R.id.editText_mData);

mbutt.setOnClickListener(new OnClickListener(){

   public void onClick(View v) {

                      Intent i = new Intent(B.this, A.class);

                      i.putExtra("text_key",mtext.getText().toString());

                      startActivity(i);
        }


});

在活动 A 中:

-在 onResume() 中,执行此操作

 Intent i = getIntent();

 String mdata = i.getExtras().getString("text_key");

-现在您已经获得了mdata变量中的数据,我希望您static ArrayList在活动 A 中使用了 a 来保存数据,而这些数据又必须输入到ArrayAdater.

例如:

public static ArrayList<String> aList = new ArrayList<String>();

-现在最后在 中onResume(),您必须将此mdata变量的添加到ArrayList中,然后将其输入到中ArrayAdpater,然后再次ListView使用 this设置Adapter

于 2012-10-21T18:29:24.407 回答