试图使用不兼容的返回类型 - android studio

时间:2016-07-20 20:37:06

标签: java android android-studio android-intent

有人可以帮我解决这个错误吗? 我正在尝试制作的节目是在线流式广播。 我需要返回值“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;
    }
}

1 个答案:

答案 0 :(得分:1)

问题出现在这一行:

int value = listView.getItemAtPosition(position);

getItemAtPosition()会返回Object,因此您必须先将其转换为int,然后再将其转让给int变量。只有在您确定listView包含整数时才应执行此操作,否则您将获得ClassCastException。这样做:

int value = (int)listView.getItemAtPosition(position);

此外,如果你startActivity()在任何地方使用value之前,那么在获取它时没有多大意义。如果您希望在那里使用它,请使用putExtra将其传递给您的下一个活动。