有人可以帮我解决这个错误吗? 我正在尝试制作的节目是在线流式广播。 我需要返回值“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;
}
}
答案 0 :(得分:1)
问题出现在这一行:
int value = listView.getItemAtPosition(position);
getItemAtPosition()
会返回Object
,因此您必须先将其转换为int
,然后再将其转让给int
变量。只有在您确定listView
包含整数时才应执行此操作,否则您将获得ClassCastException
。这样做:
int value = (int)listView.getItemAtPosition(position);
此外,如果你startActivity()
在任何地方使用value
之前,那么在获取它时没有多大意义。如果您希望在那里使用它,请使用putExtra
将其传递给您的下一个活动。