簡體   English   中英

Android將多個數據從列表傳遞到另一個活動

[英]Android pass multiple data from list to another activity

我有:

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"按鈕之前不僅單擊的所有項目/位置(不僅是最后一個)嗎?

您可以將long press位置存儲到ArrayList<Integer> 使用i.putIntegerArrayListExtra(name, value)傳遞給您的Intent 在接收Activity使用data.getIntegerArrayListExtra(name)獲取值。

嘗試這個:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM