【问题标题】:No suitable method found for makeText没有找到适合 makeText 的方法
【发布时间】:2019-10-10 16:47:01
【问题描述】:

我似乎遇到了这个错误,我是 Android Studio 的新手,我正在尝试将名称从数组中获取到 ListView 然后当用户点击任何列表时,Toast 被激活.但我似乎遇到了以下错误:

error: no suitable method found for makeText(MainActivity,Object,int)
method Toast.makeText(Context,CharSequence,int) is not applicable
(argument mismatch; Object cannot be converted to CharSequence)
method Toast.makeText(Context,int,int) is not applicable
(argument mismatch; Object cannot be converted to int)

这是我的代码:

final ArrayList names = new ArrayList();
names.add("Samuel");
names.add("Manuel");
names.add("King");

listv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Toast.makeText(MainActivity.this, names.get(position), Toast.LENGTH_LONG).show();
    }
});

有什么问题,我该如何解决?

【问题讨论】:

    标签: java android android-toast


    【解决方案1】:

    改为:

    Toast.makeText(MainActivity.this, String.valueOf(names.get(position)), Toast.LENGTH_LONG).show();
    

    【讨论】:

      【解决方案2】:

      我认为您的ArrayList 默认为Object 类型,因为您在实例化它时没有指定String。如果这是真的,那么当您调用names.get(position) 时,它会返回一个Object 而不是String,这会给您带来问题,因为Toast.makeText() 方法需要(Context,CharSequence,int) 类型的参数而不是what你正在传递它是(Context,Object,int)

      请注意,在这种情况下,出于您的目的,CharSequenceString 可以被视为相同。

      如果这个理论是正确的,你可以通过几种不同的方式来解决这个问题。

      1. 您可以调用toString() 将您的对象显式转换为字符串。像这样:

        Toast.makeText(MainActivity.this, names.get(position).toString(), Toast.LENGTH_LONG).show();

      或 2) 您可以在初始化 ArrayList 时声明 String 的类型,如下所示:

      final ArrayList<String> names = new ArrayList<>();
      

      那么您对names.get(position) 的调用应该返回String 而不是Object

      【讨论】:

        【解决方案3】:

        Toast 类中没有带有此参数的方法makeText(MainActivity, Object, int),这就是您收到此错误的原因。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-10-30
          • 2014-08-27
          • 2021-06-19
          • 2015-11-26
          • 2019-09-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多