2016-07-20 7 views
1

Kann mir jemand mit diesem Fehler helfen, den ich bekomme? Das Programm, das ich versuche zu machen, ist Online-Streaming-Radio. Ich muss den Wert "Wert" zurückgeben, damit ich es in einer anderen Java-Klasse verwenden kann.Versuch, einen inkompatiblen Rückgabetyp zu verwenden - Android Studio

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; 
    } 
} 

Antwort

1

Das Problem tritt in dieser Zeile:

int value = listView.getItemAtPosition(position); 

getItemAtPosition() ein Object zurückkehrt, so müssen Sie es zu einem int konvertieren, bevor es zu einer int Variablen zugewiesen wird. Sie sollten dies nur tun, wenn Sie sicher sind, dass Ihr listView Ganzzahlen enthält, andernfalls erhalten Sie eine ClassCastException. Machen Sie es wie folgt aus:

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

Auch wenn Sie startActivity() vor dem value überall verwendet wird, dann ist es nicht viel Sinn, es zu bekommen. Verwenden Sie putExtra, um es an Ihre nächste Aktivität zu übergeben, wenn Sie es dort verwenden möchten.

+0

versucht, die nicht funktioniert ... Beachten Sie, dass es standardmäßig ungültig war, bevor ich es in Ganzzahl ändern. – rmdan

+0

Sie müssen mir erklären, was Sie zu erreichen versuchen. Was beinhaltet deine ListView? – Vucko

+0

meine Listenansicht enthält Zahlen .... und ich möchte die Position des Elements von listview, wenn angezapft, um es in einer anderen Klasse zu verwenden – rmdan