Android 将值从活动传递到适配器
我正在开发一个应用程序,当用户输入他们的邮件id时,我将其存储在一个变量中,并传递给其他活动。 为此,我使用导航抽屉,在主活动中,我将电子邮件传递给另一个实习活动。在其中,我使用其位置传递值:如下所示:Android 将值从活动传递到适配器,android,android-recyclerview,Android,Android Recyclerview,我正在开发一个应用程序,当用户输入他们的邮件id时,我将其存储在一个变量中,并传递给其他活动。 为此,我使用导航抽屉,在主活动中,我将电子邮件传递给另一个实习活动。在其中,我使用其位置传递值:如下所示: mDrawerList.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0
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);
}
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 = getIntent();
String email=intent.getStringExtra("email");
在其他活动中,我使用intent获取值,如下所示:
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);
}
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 = getIntent();
String email=intent.getStringExtra("email");
但问题是,email的值显示为null。所以,如果我错了,请在此提供帮助
在支架内单击更改代码。因为您正在使用intent
,您正在为其更改活动。因此,您需要使用getIntent()
来获取email
值
而不是Intent i=newintent(v.getContext(),internicshipsdetails.class)
使用您应该传递给适配器的上下文(适配器在其中设置的活动),并执行以下操作:
Intent i = new Intent(context, InternShipsDetails.class);
String email=i.getStringExtra(“电子邮件”)
这里如何定义i
?在holder
中指定i
为i.getStringExtra(“电子邮件”)
?Intent i=new Intent(v.getContext(),internicshipsdetails.class)定义i
的位置。好的,他还需要调用getIntent()
的活动引用。我们应该这样写:((activity)v、 getContext()).getIntent();