0

嗨,我是 android 新手,做一些简单的例子。确切地说,我正在使用两个活动,并且它包含两个活动的列表视图。在第一个列表视图(Activity1)为空时,第二个列表视图(Activity2)有一些带有复选框的列表项。现在从第二个活动中获取所选项目并在第一个活动中列出。很好,但正是我想要的是再次单击第一个活动中的“添加”按钮,它启动第二个活动,然后选择一些项目并保存。此新选择的项目未添加到第一个活动中使用的现有列表值中。谁能帮帮我。

SecondActivity.java

add.setOnClickListener(new View.OnClickListener() {


        public void onClick(View v) {
            checkedContactList = adapter.getSelectedItemArrayList();
        }
            Intent returnIntent = new Intent(v.getContext(),MainActivity.class);

            returnIntent.putParcelableArrayListExtra("result", checkedContactList);
            startActivity(returnIntent);
        }
    });

在 MainActivity.java

private ArrayList<SelectedListModel> selectedArrayList = new ArrayList<SelectedListModel>();
List<Map<String, String>> dataList;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
dataList = new ArrayList<Map<String, String>>();
Bundle data = getIntent().getExtras();
selectedArrayList = data.getParcelableArrayList("result");
Iterator<ArrayList<SelectedListModel>> it = selectedArrayList.iterator();
        while (it.hasNext()){SelectedListModel selectedModel = (SelectedListModel)it.next();
SelectedListModel selectedModel = (SelectedListModel)it1.next();
            String name1 = selectedModel.getName();
                String number1 = selectedModel.getNumber();
                Map<String, String> dict = new HashMap<String, String>(2);
                dict.put("name", name1);
                dict.put("number", number1);
                dataList.add(dict);
                //listdata.add(dataList);

            } 
SimpleAdapter adpt = new SimpleAdapter(this, dataList, android.R.layout.two_line_list_item, new String[] {"name", "number"}, new int[] {android.R.id.text1, android.R.id.text2});
    selectedList.setAdapter(adpt);
}
4

1 回答 1

0

您可以使用 startActivityForResult() Api 文档

调用活动 1

startActivityForResult( Activity2, Activity2RequestCode)

在活动 2

int result = "Some message here";
output.putExtra(name , result);
setResult(RESULT_OK, output);
finish();

在活动 1 中获取返回值

onActivityResult (int requestCode, int resultCode, Intent data) 
if (requestCode == ActivityTwoRequestCode && resultCode == RESULT_OK && data != null)
num1 = data.getIntExtra(Number1Code);
num2 = data.getIntExtra(Number2Code);
于 2013-05-21T05:30:04.627 回答