我正在开发一个应用程序,当用户输入他们的邮件ID时,我将其存储在varible中并传递给其他活动。 为此,我使用导航抽屉,在主活动中,我将电子邮件传递给另一个internShips的活动。我通过使用其位置传递值:如下所示:
mDrawerList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
if(position==3)
{
Intent intent = new Intent(MainActivity.this,internships.class) ;
intent.putExtra("email", email);
startActivity(intent);
}
在实习中,我正在使用recyclerview。如果我点击任何项目,它将开始另一项活动。点击项目我在实习适配器中给出点击选项,如下所示:
holder.itemView.setOnClickListener (new View.OnClickListener() {
@Override
public void onClick(View v)
{
Intent i = new Intent(v.getContext(), InternShipsDetails.class);
String email = i.getStringExtra("email");
i.putExtra("email" , email);
v.getContext().startActivity(i);
}
});
}
在其他活动中,我使用intent获取值,如下所示:
Intent intent = getIntent();
String email=intent.getStringExtra("email");
但问题是,电子邮件的价值显示为空。所以,我错了,请在这里提供帮助。
答案 0 :(得分:1)
在
holder onClick
内更改您的代码。因为您正在使用intent
来改变您的活动。因此,您需要使用getIntent()
来获取
Intent i = new Intent(v.getContext(), InternShipsDetails.class);
Intent emailIntent = ((Activity)v.getContext()).getIntent();
String email = emailIntent.getStringExtra("email");
i.putExtra("email" , email);
Log.d("###$email", email + "");
v.getContext().startActivity(i);
答案 1 :(得分:0)
而不是Intent i = new Intent(v.getContext(), InternShipsDetails.class)
使用您应该传递给适配器的上下文(设置适配器的活动)并执行以下操作:
Intent i = new Intent(context, InternShipsDetails.class);