【问题标题】:Click recyclerView new activity Error Attempt to invoke virtual method点击recyclerView new activity Error Attempt to invoke virtual method
【发布时间】:2020-04-26 21:34:17
【问题描述】:

我需要帮助,对于在 recyclerview 上单击并打开新活动,我在项目列表中单击了关闭应用程序和 logcat 错误是: java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“java.lang.String android.content.Context.getPackageName()”

我的代码:

 @Override
public void onBindViewHolder(final estadoView estadoView, final int i) {
    final Estado estado = estadoList.get(i);
    estadoView.txtnombreMostrar.setText(estado.getStateName());



   estadoView.txtnombreMostrar.setOnClickListener(new View.OnClickListener() {

       @Override
       public void onClick(View v) {
           Intent intent =  new Intent(context, Invernadero.class);
           context.startActivity(intent);
       } });


}

我的公开课是:

public class estadoView extends RecyclerView.ViewHolder {
    private TextView  txtnombreMostrar;

    RelativeLayout parentLayout;


    public estadoView(@NonNull View itemView) {
    super(itemView);
    txtnombreMostrar = itemView.findViewById(R.id.txtNombreMostrar);

    }

}

有什么问题吗?我在网上搜索,在论坛中,但我没有解决我的问题

Code

LogCat

context is null, how to solved?

【问题讨论】:

  • 你能在这里分享你的 items.xml 吗?
  • 看起来您在代码中引用了错误的视图,这将有助于您将 xml id 与 java 代码完全匹配。

标签: java android android-studio


【解决方案1】:

您似乎遇到了上下文问题,但由于您没有提供如何获取上下文,因此现在在您的视图侦听器中将其替换为 v.getContext(),如下所示:

 @Override
public void onBindViewHolder(final estadoView estadoView, final int i) {
    final Estado estado = estadoList.get(i);
    estadoView.txtnombreMostrar.setText(estado.getStateName());



   estadoView.txtnombreMostrar.setOnClickListener(new View.OnClickListener() {

       @Override
       public void onClick(View v) {
           Intent intent =  new Intent(v.getContext(), Invernadero.class);
           v.getContext().startActivity(intent);
       } });


}

【讨论】:

  • @ManzoorAhmad 是的,两者都应该工作.. v 与 estadoView 相同的视图 .. 因为 View 是父类
  • Zain,你好,我需要帮助,请发帖:stackoverflow.com/questions/61618675/…
  • 嗨 Zain,很抱歉打扰你,你能帮我解决这个问题,关于如何从 textview 获取 mparent 数据
  • 嗨@MexiCano,请问您有什么问题
  • 嗨 Zain,请帮帮我:stackoverflow.com/questions/61811228/…
【解决方案2】:

在开始一个新的 Intent 时检查你的上下文,你从哪里得到上下文,也许上下文仍然为空或尚未分配

java.lang.String android.content.Context.getPackageName()

我确定上下文为空

【讨论】:

  • 你可以使用上面@zain所说的触发点击的视图
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-27
  • 2022-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多