有人可以帮我解决这个我不断遇到的错误吗? 我正在尝试制作的程序是在线流媒体广播。 我需要返回值“value”,以便我可以在另一个 java 类中使用它。
ArrayAdapter arrayAdapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,ch);
listView.setAdapter(arrayAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public int onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent i = new Intent(getApplicationContext(), mPlayer.class);
i.putExtra("name", ch.get(position));
int value = listView.getItemAtPosition(position);
startActivity(i);
return value;
}
}
最佳答案
问题出现在这一行:
int value = listView.getItemAtPosition(position);
getItemAtPosition()
返回 Object
,因此您必须将其转换为 int
在将其分配给 int
之前多变的。只有当您确定您的 listView
包含整数,否则你会得到一个 ClassCastException
.这样做:
int value = (int)listView.getItemAtPosition(position);
另外,如果你 startActivity()
在使用 value
之前任何地方,那么获得它就没有多大意义。使用 putExtra
如果您想在那里使用它,可以将它传递给您的下一个 Activity 。
关于java - 尝试使用不兼容的返回类型 - android studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38490402/