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

使用OnClickListener在AlertDialog中设置项目时出现问题

岳朝
2023-03-14

在尝试使用AlertDialog设置微调器时遇到问题,继续收到错误“AlertDialog类型中的方法setItems(int, DialogInterface. OnClickListener)。生成器不适用于参数(String[], new View. OnClickListener(){})”

我对Android编程还比较陌生,我仍在适应它,如果有任何帮助,我将不胜感激!谢谢

AlertDialog.Builder b = new Builder(this);
    b.setTitle("Select Day");
    String[] types = {"1", "2", "3"};
    b.setItems(types, new OnClickListener){
        public void onClick(DialogInterface dialog, int which){
            dialog.dismiss();
            switch(which){
            case 0:
                day = "1";
                break;
            case 1:
                day = "2";
                break;
            }
        }


    });

共有1个答案

糜鸿风
2023-03-14

改变:

b.setItems(types, new OnClickListener){

b.setItems(types, new DialogInterface.OnClickListener){

你必须分开

String[] types = {"1", "2", "3"};

到单个int或CharSequence数组。

您可能在代码中的某个地方有一个用于另一个普通视图的OnClickListener,并将其包含在导入中。由于所有OnClickListener类共享相同的名称,Eclipse会自动将它们解析为当前导入的类。在这种情况下,可以指定父类。

此外,Eclipse解析的setItems()方法第一个参数采用单个int,而不是字符串数组。不过,您可以使用另一个setItems()方法,该方法采用CharSequence数组。在这种情况下,改变

String[] types = {"1", "2", "3"};

CharSequence[] types = {"1", "2", "3"};
 类似资料:
  • 我是这方面的新手。我希望这个代码做的是:每当用户点击项目(例如:like或dislike)时,我希望我的firebase发生一些事情(例如,将like的值设置为1)。我正在努力为每个项目(喜欢,不喜欢,快乐,报告)设置一个点击监听器,但我不知道怎么做。即使我在静态类内部设置了click侦听器,也不能调用我的数据库引用。我还尝试了commentsactivity.this.mreviewsdatab

  • 我是npm和Angular 2的新手,我正在尝试使用Angular/CLI建立一个新的Angular 2项目。 我当前正在运行: Node V8.9.3 npm V5.6.0 Windows 10 首先,我运行,看起来安装得很好。然后我转到我想启动项目的文件夹,运行,但不断得到这个错误。 npm警告已弃用angular-cli@1.0.0-beta.22-1:angular-cli已重命名为@An

  • 我正在学习使用laravel创建项目,我正在使用PHP8。通过“laravel新建项目”创建新项目时。我得到了这个错误,供应商文件夹在该项目中丢失。

  • > 出了什么问题:配置项目“:反应原生矢量图标”时出现问题。 无法解析配置“:反应本机矢量图标:类路径”的所有文件。找不到 com.android.tools.build:gradle:2.3 的任何匹配项。 因为没有可用的com.android.tools.build:gradle版本。在以下位置搜索: https://jcenter.bintray.com/com/android/tools/

  • 我在react-native中构建了一个项目,它在我的计算机上运行良好,但在更改其位置后,问题开始出现。我使用“yarn add@react-native-community/async-storage”安装了这个包

  • 我使用squeelize.js和SQLite-database,遇到了一个为外键设置值的问题。我有以下代码: Sequelize在DB中创建MessageModel-row,但当它试图生成TodoModel时,它会出现以下错误: 生成得SQL: 我的TodoModel表如下所示: 我在SQLite中使用了“sequelize”:“^5.1.0”。 MyConfig文件: