Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android将多个数据从列表传递到另一个活动_Android_Listview_Android Activity_Onitemclicklistener_Onitemlongclicklistener - Fatal编程技术网

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);
        }
    }
}