2016-07-20 3 views
1

Может кто-нибудь помочь мне с этой ошибкой, которую я продолжаю получать? Программа, которую я пытаюсь сделать, это онлайн-потоковое радио. Мне нужно вернуть значение «значение», чтобы я мог использовать его в другом классе 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

Проблема возникает в этой строке:

int value = listView.getItemAtPosition(position); 

getItemAtPosition() возвращает Object, так что вы должны преобразовать его в int перед назначением его на int переменной. Вы должны сделать это, только если вы уверены, что ваш listView содержит целые числа, иначе вы получите ClassCastException. Нравится ли это так:

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

Кроме того, если вы startActivity() перед использованием value в любом месте, то это не имеет особого смысла в получении его. Используйте putExtra, чтобы передать его вашему следующему действию, если вы хотите его использовать.

+0

пытался, чтобы это не сработало ... обратите внимание, что по умолчанию это было пустое, прежде чем я изменил его на целое. – rmdan

+0

Вам нужно объяснить мне, что вы пытаетесь сделать. Также в чем состоит ваш список? – Vucko

+0

my listview содержит числа .... и я хочу, чтобы позиция элемента listview использовалась в другом классе. – rmdan

Смежные вопросы