3 回答

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊
我認(rèn)為您ArrayList
默認(rèn)為該類(lèi)型,Object
因?yàn)槟趯?shí)例化它時(shí)沒(méi)有指定String
。如果這是真的,那么當(dāng)您調(diào)用時(shí),names.get(position)
它將返回 anObject
而不是 a String
,這會(huì)給您帶來(lái)問(wèn)題,因?yàn)樵?code>Toast.makeText()方法需要類(lèi)型的參數(shù)(Context,CharSequence,int)
,而不是您傳遞給它的參數(shù)(Context,Object,int)
請(qǐng)注意,在這種情況下,出于您的目的CharSequence
, 和String
可以被視為相同。
如果這個(gè)理論是正確的,您可以通過(guò)幾種不同的方式解決問(wèn)題。
您可以調(diào)用
toString()
將對(duì)象顯式轉(zhuǎn)換為字符串。像這樣:Toast.makeText(MainActivity.this,names.get(位置).toString(),Toast.LENGTH_LONG).show();
String
或者2)你可以在初始化時(shí)聲明類(lèi)型,ArrayList
如下所示:
final ArrayList<String> names = new ArrayList<>();
那么你的調(diào)用names.get(position)
應(yīng)該返回 aString
而不是 anObject

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
改成:
Toast.makeText(MainActivity.this, String.valueOf(names.get(position)), Toast.LENGTH_LONG).show();

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊
在Toast
類(lèi)中沒(méi)有makeText(MainActivity, Object, int)
帶有此參數(shù)的方法,這就是您收到此錯(cuò)誤的原因。
添加回答
舉報(bào)