我想在另一个活动中向变量发送单击某个项目的位置。我向您展示我的作品无效。当我按下一个项目时,应用程序退出。
适配器中的MyViewHolder:
public class AccessToken
{
public string token_type { get; set; }
public string expires_in { get; set; }
public string ext_expires_in { get; set; }
public string expires_on { get; set; }
public string not_before { get; set; }
public string resource { get; set; }
public string access_token { get; set; }
public string refresh_token { get; set; }
public object Status_Code { get; set; }
}
我的活动记录:
public myViewHolder(View itemView) {
super(itemView);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// get position
int poss = getAdapterPosition();
// sharing position
Intent intent = new Intent(mContext, Main2Activity.class);
intent.putExtra("position", poss );
mContext.startActivity(intent);
}
}
});
答案 0 :(得分:1)
尝试
public class Main2Activity extends AppCompatActivity {
private TextView textTest;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
textTest = findViewById(R.id.text_test);
int id = getIntent().getExtras().getInt("position");
String position = String.valueOf(id);
textTest.setText(position);
}
答案 1 :(得分:1)
从onCreate()方法外部删除此行代码int id = getIntent().getExtras().getInt("position");
,并将此代码放入Main2Activity中的onCreate方法内部
textTest = findViewById(R.id.text_test);
int id = getIntent().getExtras().getInt("position");
String position = String.valueOf(id);
textTest.setText(position);
答案 2 :(得分:1)
创建接口类
Public interface OnPostionClick{
Public void yourmethod(int pos)
}
将接口方法放在适配器viewHolder onClick
方法上
If(context instanceof OnPostionClick){
((OnPostionClick) context).yourmethod(poss);
}
第二活动上的实现OnPostionClick
界面,并覆盖yourmethod