亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

沒有找到適合 makeText 的方法

沒有找到適合 makeText 的方法

交互式愛情 2023-10-12 17:34:24
我似乎收到此錯誤,我是 Android Studio 的新手,我正在嘗試將名稱從數組獲取到 a 中,ListView然后當用戶點擊任何列表時 aToast被激活。但我似乎被以下錯誤困擾: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();    }});有什么問題以及如何解決這個問題?
查看完整描述

3 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

我認為您ArrayList默認為該類型,Object因為您在實例化它時沒有指定String。如果這是真的,那么當您調用時,names.get(position)它將返回 anObject而不是 a String,這會給您帶來問題,因為該Toast.makeText()方法需要類型的參數(Context,CharSequence,int),而不是您傳遞給它的參數(Context,Object,int)

請注意,在這種情況下,出于您的目的CharSequence, 和String可以被視為相同。

如果這個理論是正確的,您可以通過幾種不同的方式解決問題。

  1. 您可以調用toString()將對象顯式轉換為字符串。像這樣:

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

String或者2)你可以在初始化時聲明類型,ArrayList如下所示:

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

那么你的調用names.get(position)應該返回 aString而不是 anObject


查看完整回答
反對 回復 2023-10-12
?
莫回無

TA貢獻1865條經驗 獲得超7個贊

改成:

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


查看完整回答
反對 回復 2023-10-12
?
尚方寶劍之說

TA貢獻1788條經驗 獲得超4個贊

Toast類中沒有makeText(MainActivity, Object, int)帶有此參數的方法,這就是您收到此錯誤的原因。



查看完整回答
反對 回復 2023-10-12
  • 3 回答
  • 0 關注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號