当前位置: 首页 > 知识库问答 >
问题:

Intent对onClick方法无效

颜博达
2023-03-14

我试图在checkbox的onClick方法中使用意图,但我得到的错误是方法startActivity未定义,并且构造函数意图(new View.OnClickListener等)也未定义。下面是我的代码:

        final CheckBox addCheckbox = (CheckBox) v
            .findViewById(R.id.addCheckbox);

    // set data to display

    addCheckbox
            .setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    if (addCheckbox.isChecked()) {
                        System.out.println("Checked");
                        PackageManager pm = mContext.getPackageManager();
                        Drawable icon = null;
                        try {
                            icon = pm
                                    .getApplicationIcon(entry.packageName);
                        } catch (NameNotFoundException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                        Drawable default_icon = pm.getDefaultActivityIcon();
                        if (icon instanceof BitmapDrawable
                                && default_icon instanceof BitmapDrawable) {
                            BitmapDrawable icon_bd = (BitmapDrawable) icon;
                            Bitmap icon_b = icon_bd.getBitmap();
                            BitmapDrawable default_bd = (BitmapDrawable) pm
                                    .getDefaultActivityIcon();
                            Bitmap default_b = default_bd.getBitmap();
                            if (icon_b == default_b) {
                                // It's the default icon


                                ByteArrayOutputStream stream = new ByteArrayOutputStream();
                                default_b.compress(Bitmap.CompressFormat.PNG, 100, stream);
                                byte[] byteArray = stream.toByteArray();

                                Intent intent = new Intent(this, GridView.class);
                                intent.putExtra("picture", byteArray);
                                this.startActivity(intent);
                            }
                        }
                    } else {
                        System.out.println("Un-Checked");
                    }

                }
            });

共有1个答案

栾耀
2023-03-14

由于您位于侦听器内部,this引用侦听器,这就是错误的原因

“方法startActivity未定义”

只需删除this

startActivity(intent);
Intent intent = new Intent(v.getContext(), GridView.class);

这样块看起来就像

Intent intent = new Intent(v.getContext(), GridView.class);
intent.putExtra("picture", byteArray);
startActivity(intent);
 类似资料:
  • 我试图从其他应用程序中获得mime类型文本/平原的意图,并将该文本存储在字符串类型的变量中。它在onCreate方法中运行良好,但是当我使用singleTask作为launchmode并暂停应用程序(通过按home按钮)并试图将其他应用程序的文本共享到我的应用程序时,onNewIntent(Intent Intent)方法被调用,Intent.gettype()返回null,但在onCreate方

  • 我们正在从SQLite db加载大量数据,并使用IntentService。 有一个活动在加载完成时从IntentService接收广播。当试图在IntentService完成之前启动活动时,方法会被多次调用。 sendPersonListBroadcast();

  • 问题内容: 我想阅读onClick事件值属性。但是当我单击它时,在控制台上会看到类似以下的内容: 我的代码正常工作。运行时,我可以在onClick事件中看到但无法获取它。 我的代码: 如何在React js中将值传递给事件? 问题答案: 简单的方法 使用箭头功能: 这将创建一个新的函数,以正确的参数进行调用。 更好的方法 将其提取到子组件中。在render调用中使用箭头函数的问题是,每次都会创建一

  • 我试图在Android中做一个简单的计算器。

  • 如果有人能帮助我,我会非常高兴,因为我是对象编程的新手。我的问题是:我正在编写一些带有蓝牙通信的应用程序。我编写了所有方法并在MainActivity.class.中成功地在设备之间连接和传输数据我也有一个SearchActivity.class它显示了List上范围内的所有设备,因此用户可以选择一个。然后将设备通过Intent传递到Main Active,从那里开始连接。但由于我的应用程序的性质

  • 为什么会这样?我有我的活动。xml文件的顺序。添加多个活动的教程有时不清楚,也没有解决这个问题。