簡體   English   中英

RecyclerView通過Intent Extras傳遞數據

[英]RecyclerView passing data via Intent extras

因此,我試圖通過Intent Extras將一些數據傳遞給第二個活動。 該代碼在ListView上可以正常工作,但是現在當我切換到RecyclerView時,它不顯示任何文本,文本區域為空白。

這是代碼:(從onBindViewHolder()開始)

 holder.container.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                passData();
            }
        });

    }

    private void passData() {
        Todo item = new Todo();
        Intent i = new Intent(c, Details.class);
        i.putExtra("nazivTodoa", item.getTitle());
        i.putExtra("datumTodoa", item.getRecordDate());
        i.putExtra("idTodoa", item.getItemId());
        c.startActivity(i);
    }

這就是我參加第二個活動的方式:

  Bundle extras = getIntent().getExtras();
    String naslov = extras.getString("nazivTodoa");
    String datum = extras.getString("datumTodoa");

    textViewNazivTodoaDetails.setText(naslov);
    textViewDatumTodoaDetails.setText(datum);

我究竟做錯了什么?

您做錯了什么,是您沒有獲得當前單擊的對象。 您可以通過從適配器中使用的數組列表中獲取對象來實現。 那樣做:

Arraylist<Item> yourlist = new Arraylist();

       @Override 
        public void onClick(View v) {
            // position = pass the current position of the object you want
            passData(int position);

        } 
    }); 

} 

private void passData(int position) { 
    Todo item = new Todo();
    Intent i = new Intent(c, Details.class);
    i.putExtra("nazivTodoa", yourlist.get(position).getTitle());
    i.putExtra("datumTodoa", yourlist.get(position).item.getRecordDate());
    i.putExtra("idTodoa",    yourlist.get(position).item.getItemId());
    c.startActivity(i);
} 

就像dymmeh所說的那樣,您需要將列表中的項目傳遞給新活動。 您當前正在傳遞一個新創建的空對象。

代替

Todo item = new Todo();
Intent i = new Intent(c, Details.class);
i.putExtra("nazivTodoa", item.getTitle());
i.putExtra("datumTodoa", item.getRecordDate());
i.putExtra("idTodoa", item.getItemId());

你應該有

Todo item = listData.get(itemPosition);
Intent i = new Intent(c, Details.class);
i.putExtra("nazivTodoa", item.getTitle());
i.putExtra("datumTodoa", item.getRecordDate());
i.putExtra("idTodoa", item.getItemId());

暫無
暫無

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

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