由于尝试调用虚拟方法“java.lang.String android.content.Context.getPackageName()”,意图失败

2024-01-03

我拥有的:我有一个 RecyclerView,其中包含酒吧、咖啡店的图像。 ETC

我想要的:当您单击这些图像之一时,我会向您显示所选位置的信息,但是在您单击所选图像时,应用程序崩溃并显示此错误“尝试调用虚拟方法”java.lang.String android.content.Context.getPackageName()'在空对象引用上”在我创建意图的行上。我已经查找了此错误,但我正在按照他们所说的进行所有操作

我的问题:我该如何解决这个问题?请,我真的很感激带有代码的示例,我还不擅长编程,预先感谢

我的java课

    public class foodAndGo extends AppCompatActivity {
    ArrayList<ClaseNueva> listalugares;
    RecyclerView recyclerview;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_food_and_go);

       listalugares = new ArrayList<ClaseNueva>();
       recyclerview = (RecyclerView) findViewById(R.id.RecyclerID);
       recyclerview.setLayoutManager(new LinearLayoutManager(this));

       llenarLugares();

       AdapterDatos adapter = new AdapterDatos(foodAndGo.this, listalugares);
       recyclerview.setAdapter(adapter);

    }

    private void llenarLugares() {
        listalugares.add(new ClaseNueva("Restaurantes", R.drawable.carnemejor));
        listalugares.add(new ClaseNueva("Bares", R.drawable.beers));
        listalugares.add(new ClaseNueva("Cafeterías", R.drawable.desayunosmejor));
        listalugares.add(new ClaseNueva("Pizzerías", R.drawable.pizzaamejor));
        listalugares.add(new ClaseNueva("Favoritos", R.drawable.favoritosmejo));

    }
}

我的适配器

    public class AdapterDatos extends RecyclerView.Adapter<AdapterDatos.ViewHolder> {


    ArrayList<ClaseNueva>listalugares;
    Context context;

    public AdapterDatos(foodAndGo foodAndGo, ArrayList<ClaseNueva> listalugares) {
        this.context = context;
        this.listalugares = listalugares;
    }


    static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {//quizas poner esto en estatic
        TextView etiNombre;
        ImageView foto;

//        Context context;

        public ViewHolder(View itemView) {
            super(itemView);
//            context = itemView.getContext();

            etiNombre = (TextView) itemView.findViewById(R.id.idNombre);
            foto = (ImageView) itemView.findViewById(R.id.idImagen);
        }
        void setOnClickListeners(){
            foto.setOnClickListener(this);
        }

        @Override
        public void onClick(View v) {
//            switch (v.getId()){
//                case R.id.idImagen:
//                    Intent intent = new Intent(context, MapsActivity.class);
//                    context.startActivity(intent);
//                    break;
//            }

        }
    }


    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list,null,false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, final int position) {
        holder.etiNombre.setText(listalugares.get(position).getNombre());
        holder.foto.setImageResource(listalugares.get(position).getFoto());

//        holder.setOnClickListeners();
       if (position == 0){
           holder.foto.setOnClickListener(new View.OnClickListener() {
               @Override
               public void onClick(View v) {
                   Intent myIntent = new Intent(context, MapsActivity.class);
                   context.startActivity(myIntent);
               }
           });
       }
    }

    @Override
    public int getItemCount() {
        return listalugares.size();
    }

}

我认为您忘记传递活动的上下文!

AdapterDatos adapter = new AdapterDatos(foodAndGo.this,listalugares);

在适配器中接收上下文:-

public AdapterDatos(Context context , ArrayList<ClaseNueva> listalugares) {
        this.context = context;
        this.listalugares = listalugares;
    }

我希望这对你有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

由于尝试调用虚拟方法“java.lang.String android.content.Context.getPackageName()”,意图失败 的相关文章

  • 仅在文件下载完成后设置 cookie。

    我有一个场景 我想告诉用户下载完成并提示关闭按钮 为此 我使用 jquery 插件来连续监视 cookie 以了解下载何时完成 我的问题是我想设置这个cookie fileDownload true and path 下载完成后立即进行 为
  • 如何在 Android Studio 1.0.1 中禁用 NDK 构建

    我正在尝试使用 Android Studio 1 0 1 构建 Android Java 应用程序 但是 我的应用程序使用了一些我使用 NDK 构建的 C 代码 这些代码由 Android mk 和 Application mk 文件控制
  • new Date() 和日历日期之间的区别

    在实践中 下面两个日期有什么区别 Date date new Date Date date Calendar getInstance getTime 我的理解是 new Date 是基于 UTC GMT 的日期 而日历的 getTime 基
  • hibernate 如何确保二级缓存使用数据库中的最新数据进行更新

    我读到 使用 hibernate 的二级缓存 它可以通过减少数据 对象检索的数据库命中来提高应用程序性能 但是hibernate是如何保证二级缓存与数据库中的数据是最新的呢 例如 假设下面的类是实体并持久化到数据库中 Entity clas
  • 使用 ArrayAdapter 过滤 ListView 而不重写 getFilter 方法

    在这个 Stackoverflow 中answer https stackoverflow com questions 2718202 custom filtering in android using arrayadapter answe
  • Android O - 通知通道和NotificationCompat

    我无法改变这种感觉 Android 开发人员再次提出了一些新东西 却让每个人都对他们如何看待该功能的使用一无所知 我说的是 Android O 中的通知通道 多年来 我一直使用兼容性支持库来避免处理特定平台的细节 即 Notificatio
  • 本机查询 (JPA) 未重置并返回相同的旧结果

    我有一个本机 sql 查询如下 for init i 0 i lt 2 i String sql Select from accounts where id Query query em createNativeQuery sql Acco
  • 为自定义 userdetailsservice 定义 bean

    我如何定义我的自定义UserDetailsServicebean 的方式使我的 spring mvc Web 应用程序能够使用我的底层 MySQL 数据库来检查用户和密码的身份验证 具体如下 我正在添加安全性spring petclinic
  • org.apache.http 软件包在 API 级别 23 中被删除。替代方案是什么?

    在更新到最新的 android API 级别 23 Marshmallow 后 通过 build gradle 添加以下更改后 所有 org apache http 类都不起作用 android compileSdkVersion 23 b
  • 从多个文本文件读取数据[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我是Java编程新手 我正在尝试打印
  • 使用可变参数绘制星形

    我的任务是编写程序 允许用户绘制星星 星星的大小和手臂数量可能不同 当我处理基本星时 我使用 GeneralPath 和点表进行处理 int xPoints 55 67 109 73 83 55 27 37 1 43 int yPoints
  • 将 mp3 添加到 ContentResolver

    我知道从您的应用程序下载 mp3 后 您需要将其添加到ContentResolver在音乐播放器上看到它 我正在使用以下代码执行此操作 private void addFileToContentProvider ContentValues
  • 如何获取任何已安装 Android 应用程序的清单权限

    是否可以获得任何已安装的 Android 应用程序的清单权限 感谢您的提示 让它运行 final Intent mainIntent new Intent Intent ACTION MAIN null mainIntent addCate
  • 在 Android 中创建硬链接和符号链接

    我正在创建一个应用程序 我想在其中使用 Android 外部内存文件系统中的硬链接和符号链接 我尝试过使用命令 Os link oldpath newpath Os link oldpath newpath 但是 当我尝试这样做时 我收到此
  • 重叠堆叠图像视图

    我正在尝试将图像视图堆叠在一起 70 重叠 我使用了一个frameLayout 并给每个elemnet填充了10 它有效 但是当涉及到处理事件时 这个填充让我很痛苦 有没有更好的重叠视图的方法 使用不同的布局 等 我正在为 Android
  • 为什么 pagefactory 类在从另一个类初始化时返回 null

    在我的测试课上 我有DesiredCapabilities为 Appium 测试设置 在该课程中 我初始化了 BasePage 课程pagefactory元素 当我运行测试时 它按预期工作 现在 我尝试将 DesiredCapability
  • spring+hibernate 没有 xml 的映射类

    在我的 applicationContext xml 中 这就是我将 xml 映射到 POJO 的方式 如何将目录映射到类文件而不需要创建 xml
  • Android:警报对话框消失并执行下一个意图

    我正在使用禁用 GPS 的 AlertDialog 一旦用户启用 GPS 我就会通过 Intent 转到另一个 Activity 问题是 AlertDialog 出现 然后移动到下一个活动 然后我才能单击对话框上的任何按钮 我需要做什么才能
  • Java/Android 字符串到颜色的转换

    我正在制作一个应用程序 我希望能够通过用户输入 edittext 和十六进制值设置各种颜色 例如 eeeeee等等 问题是我似乎不知道如何转换它们 如果我在代码中做这样的事情 它工作得很好 标题栏 setBackgroundColor 0x
  • 从 HashMap 中查找对象键

    我有一个 HashMap 其键作为我自己的对象 键作为 String 的 ArrayList 有没有一种方法可以从映射中获取与另一个对象相同的关键对象 而无需迭代映射 请注意 我的对象已经实现了 equals 和 hashcode 并且它只

随机推荐