【问题标题】:Attempting to use an incompatible return type - android studio尝试使用不兼容的返回类型 - android studio
【发布时间】:2016-11-24 05:30:58
【问题描述】:

有人可以帮我解决我不断遇到的这个错误吗? 我正在尝试制作的程序是在线流媒体广播。 我需要返回值“值”,以便我可以在另一个 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;
    }
}

【问题讨论】:

    标签: java android android-studio android-intent


    【解决方案1】:

    问题出现在这一行:

    int value = listView.getItemAtPosition(position);
    

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

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

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

    【讨论】:

    • 试过没用...请注意,在我将其更改为整数之前,默认情况下它是无效的。
    • 您需要向我解释您想要实现的目标。还有你的列表视图包含什么?
    • 我的列表视图包含数字....并且我想要在另一个类中点击时列表视图元素的位置
    • 只需通过putExtra 传递您的意图中的position。无需致电getItemAtPosition。如果您需要该号码,则可以像这样得到它并仍然通过它。您面临的问题是什么?
    • 完全没问题。享受编码! :)
    猜你喜欢
    • 2019-10-15
    • 2020-06-08
    • 2015-04-05
    • 2015-09-01
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多