Android将多个数据从列表传递到另一个活动
我有:Android将多个数据从列表传递到另一个活动,android,listview,android-activity,onitemclicklistener,onitemlongclicklistener,Android,Listview,Android Activity,Onitemclicklistener,Onitemlongclicklistener,我有: mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { choosedOffer= mListTest1.get(position).toSt
mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
choosedOffer= mListTest1.get(position).toString();
return false;
}
});
在一项活动中
第二项活动包括:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if(resultCode == RESULT_OK){
String passedText=data.getStringExtra("text");
ar.add(passedText);
}
}
}
现在我需要什么:
长时间单击
mListView
项目后,我希望以某种方式存储其位置,然后,在按钮“后退”
单击后,我希望在第二个活动中将位置传递到ar
数组。它对列表中的一个项目有效。如果单击另一个位置,然后单击“返回”按钮,则只有最后单击的项目位置才会传递给另一个活动。在按下“后退”
按钮之前,我是否可以通过某种方式传递所有单击的项目/位置(不仅仅是最后一个)?您可以将长按
位置存储到阵列列表中。使用i.putIntegerArrayListExtra(名称、值)
将其传递给您的Intent
。在接收活动中
使用数据.getIntegerArrayListExtra(名称)
获取值。尝试以下操作:
ArrayList<String> choosedOffer = new ArrayList<String>();
mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
choosedOffer.add(mListTest1.get(position).toString());
return false;
}
});
第二项活动
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if(resultCode == RESULT_OK){
ArrayList<String> passedText = data.getStringArrayListExtra("text");
ar.addAll(passedText);
}
}
}
activityresult上受保护的void(int-requestCode、int-resultCode、Intent-data){
super.onActivityResult(请求代码、结果代码、数据);
if(requestCode==1){
if(resultCode==RESULT\u OK){
ArrayList passedText=data.getStringArrayListXTRA(“文本”);
ar.addAll(passedText);
}
}
}
效果很好!必须练习阵法:)谢谢!
public void onBackPressed() {
Intent intent = new Intent(ListviewActivity.this, MainActivity.class);
intent.putStringArrayListExtra("text",choosedOffer);
setResult(RESULT_OK, intent);
finish();
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if(resultCode == RESULT_OK){
ArrayList<String> passedText = data.getStringArrayListExtra("text");
ar.addAll(passedText);
}
}
}