我的应用程序有一个主要活动可以产生四个列表活动之一,目标是让用户一个接一个地从列表中选择项目,并在主活动submit
上将这些选项推送到数据库
问题:我不确定如何在主要活动中返回并存储列表的结果。
我没有使用其他活动的列表视图,因为它不允许在同一屏幕上显示“完成”按钮。
到目前为止,这就是我所拥有的
主:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button1 = (Button) findViewById(R.id.listOneSub);
button2 = (Button) findViewById(R.id.listTwoSub);
button3 = (Button) findViewById(R.id.listThreeSub);
button4 = (Button) findViewById(R.id.listFourSub);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
button4.setOnClickListener(this);
}
public void onClick(View v) {
if (v == button1) {
startActivity(new Intent("net.learn2develop.SecondActivity"));
} else if (v == button2) {
startActivity(new Intent("net.learn2develop.ThirdActivity"));
} else if (v == button3) {
startActivity(new Intent("net.learn2develop.FourthActivity"));
} else if (v == button4) {
startActivity(new Intent("net.learn2develop.FifthActivity"));
}
}
列出活动(所有四个都相似,只是有不同的项目):
String [] lstOne;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.secondactivity);
ListView lstView = (ListView)findViewById(R.id.android_listOne);
lstView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
//lstView.setTextFilterEnabled(true);
lstOne = getResources().getStringArray(R.array.one);
lstView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, lstOne));
}
public void onClick(View view){
ListView lstView = (ListView)findViewById(R.id.android_listOne);
String itemsSelected = "Selected items: \n";
for(int i=0; i<lstView.getCount(); i++){
if(lstView.isItemChecked(i)){
itemsSelected += lstView.getItemAtPosition(i) + "\n";
}
}
Toast.makeText(this, itemsSelected, Toast.LENGTH_LONG).show();
finish();
}
列表是从strings.xml
文件生成的。我想更新按钮下的主视图,以显示在提交之前从每个列表中选择的内容。
答案 0 :(得分:1)
使用startActivityForResult
代替startActivity
,onActivityResult
将在您的主要广告系列上调用。
我还建议将这4个类合并为1并发送要显示的字符串数组的标识符。代码重复非常糟糕。