![](/img/trans.png)
[英]How to pass/get value checkbox from adapter recycleview to another activity
[英]Unable to pass Recycleview position to another activity
我正在構建一個費用跟蹤器應用程序。 我陷入了無法將適配器 position 傳遞給另一個活動的問題。 更困擾我的是我能夠將我的 id 從適配器傳遞到活動,但無法傳遞 position。 我粘貼了下面的代碼以便更好地理解。 有人可以幫我嗎?
public void onBindViewHolder(@NonNull UltAdapter.MyViewHolder holder, int position) {
TransactionModel MyModel = myViewsList.get(position);
Log.d("checkTag -> ", MyModel.getType());
holder.amount.setText(MyModel.getAmount());
if(Objects.equals(MyModel.getType(), "Income"))
{
holder.amount.setTextColor(Color.GREEN);
holder.priority.setBackgroundResource(R.drawable.mark);
}
else
{
holder.amount.setTextColor(Color.RED);
holder.priority.setBackgroundResource(R.drawable.redmark);
}
final int pos = holder.getAdapterPosition();
holder.date.setText(MyModel.getDate());
holder.note.setText(MyModel.getNote());
holder.Btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(context,Update_transaction.class);
i.putExtra("key",myViewsList.get(pos).getId());
i.putExtra("pos",pos);
context.startActivity(i);
}
});
}
我已經看到您之前的問題,您正在檢索這樣的數據:
Bundle bundle = getIntent().getExtras();
Update_db = new DataSaver(this);
if(bundle != null)
{
id = bundle.getString("key");
pos = bundle.getString("pos");
Toast.makeText(this, "pos : " + pos, Toast.LENGTH_SHORT).show();
}
相反,您是否嘗試過獲取這樣的數據:
int pos = getIntent().getIntExtra("pos", -1 /* default value */)
對於key
,我假設您的密鑰是一個字符串
String key = getIntent().getStringExtra("key");
我之前遇到過這個問題,position 的類型是一個 Int,在檢索它時假設它是一個字符串,所以在傳遞數據時有一個解決方案:
Intent i = new Intent(context,Update_transaction.class);
i.putExtra("key",myViewsList.get(pos).getId());
i.putExtra("pos",String.valueOf(pos));
context.startActivity(i);
在檢索數據時:
int pos;
id = bundle.getString("key");
pos = Integer.parseInt(bundle.getString("pos"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.