从editText发送文本到ListView(2个活动)

时间:2013-08-11 10:29:18

标签: java android

我是Andriod和编程的新手。我正在尝试制作一个待办事项列表应用程序,它将在主布局中包含listView,Button(添加)。当我点击添加我希望它转到另一个活动,其中包含editText和添加按钮。当我点击添加按钮时,我想更新主要活动中的列表。现在我能够从第二个活动中获取信息,但是当我尝试将其添加到我的列表中时,它会将其写入。

如果我的主要活动再次出现,我该如何更新我的列表。

这是我到目前为止所拥有的:

MainActivity类:

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    add = (Button) findViewById(R.id.bAdd);
    list = (ListView) findViewById(R.id.lvList);
    addItems(); // i think this is the error but i dont know how to fix it.
    alList = new ArrayList<String>();
    aaList = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, alList);
    list.setAdapter(aaList);

}
public void clickAdd(View v) { //when clicking the add button(add)
    Intent intent = new Intent(MainActivity.this, AddItem.class);
    startActivity(intent);
}

private void addItems(){
    String s = getIntent().getStringExtra("item");
    aaList.add(s);
    aaList.notifyDataSetChanged();
}

AddItem类:

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.add_layout);
    et = (EditText) findViewById(R.id.etAdd);
    bt = (Button) findViewById(R.id.badd);

}
public void add(View v){ //when clicking the add button(bt) 
    edit = et.getText().toString(); 
    Intent intent = new Intent(AddItem.this, MainActivity.class);
    intent.putExtra("item", edit);
    startActivity(intent);
}

你能告诉我出错的地方和原因吗?谢谢

1 个答案:

答案 0 :(得分:4)

首先,您应该使用startACtivityForResult

Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);

然后在你的第二个活动中

 Intent returnIntent = new Intent();
 returnIntent.putExtra("result",result);
 setResult(RESULT_OK,returnIntent);     
 finish();

回到你的拳头:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

  if (requestCode == 1) {

     if(resultCode == RESULT_OK){      
         String result=data.getStringExtra("result");          
     }
     if (resultCode == RESULT_CANCELED) {    
         //Write your code if there's no result
     }
  }
}//onActivityResult

然后,你的addItem应该做的诀窍:

private void addItems(String s){
    aaList.add(s);
    aaList.notifyDataSetChanged();
}