我有:
mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
choosedOffer= mListTest1.get(position).toString();
return false;
}
});
和
public void onBackPressed() {
Intent intent = new Intent(ListviewActivity.this, MainActivity.class);
intent.putExtra("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){
String passedText=data.getStringExtra("text");
ar.add(passedText);
}
}
}
现在我需要:
长按mListView
项后,我想以某种方式存储其位置,然后在按钮"Back"
点击后,我希望在第二个活动中将该位置传递给ar
数组。它适用但仅适用于列表中的一个项目。如果我单击另一个位置,然后单击"Back"
按钮,则只有最后单击的项目位置将传递给另一个活动。在按下"Back"
按钮(不仅是最后一个按钮)之前,我能否以某种方式传递所有被点击的项目/位置?
答案 0 :(得分:1)
您可以将long press
个职位存储到ArrayList<Integer>
。使用Intent
将其传递给i.putIntegerArrayListExtra(name, value)
。在您的接收Activity
中使用data.getIntegerArrayListExtra(name)
来获取值。
答案 1 :(得分:1)
试试这个:
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;
}
});
和
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);
}
}
}