[英]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.