将变量从适配器发送到活动

时间:2018-09-24 17:00:30

标签: java android

在我的应用中,我使用了CardView。单击卡片后,将打开另一个需要卡片ID的活动。因此,我也尝试通过用于打开活动的意图发送数据。 我的问题是,尽管共享值不同,但接收类中的接收值始终保持0。我搞错了吗?

适配器的一部分:

@Override
public void onBindViewHolder(ViewHolder holder, final int position) {

    final int a = dataAdapter.getId();

    holder.cardView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent intent = new Intent(context, ChatActivity.class);
            intent.putExtra("CardID", a);
            context.startActivity(intent);
        }
});

第二个获得值的类:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.chat_layout);

        Intent intent = getIntent();
        int cardId = intent.getIntExtra("cardID", 0);
        Log.d("cardId = ", String.valueOf(cardId)); 
}

3 个答案:

答案 0 :(得分:5)

当u插入时,CardID“ C”为大写,而当u插入时,cardID“ c”为小写。区分大小写只需使它们大小写相同即可。

答案 1 :(得分:2)

替换为-

for i in arr: print i S t r i n g for i, ch in enumerate(arr): print i, ch 0, S 1, t 2, r 3, i 4, n 5, g

缺少大写C。

答案 2 :(得分:-1)

如果dataAdapter是列表,则可以在onBindViewHolder()中使用 position 参数。

intent.putExtra("CardID", dataAdapter.get(position));

,否则,只有在使用 recyclerViewAdapter

时,您才能使用getAdapterPosition()
intent.putExtra("CardID", dataAdapter.get(getAdapterPosition()));