Android 将值从活动传递到适配器

Android 将值从活动传递到适配器,android,android-recyclerview,Android,Android Recyclerview,我正在开发一个应用程序,当用户输入他们的邮件id时,我将其存储在一个变量中,并传递给其他活动。 为此,我使用导航抽屉,在主活动中,我将电子邮件传递给另一个实习活动。在其中,我使用其位置传递值:如下所示: mDrawerList.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0

我正在开发一个应用程序,当用户输入他们的邮件id时,我将其存储在一个变量中,并传递给其他活动。 为此,我使用导航抽屉,在主活动中,我将电子邮件传递给另一个实习活动。在其中,我使用其位置传递值:如下所示:

         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();