2016-07-20 11 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); 

、あなたvalueどこでもを使用する前にstartActivity()場合は、それはそれを得ることにあまり意味がありません。このようにそれを実行してください。それを使用する場合は、putExtraを使用して次のアクティビティに渡してください。

+0

私はそれを整数に変更する前に、デフォルトでは無効であったことに注意してください。 – rmdan

+0

あなたは何を起こそうとしているのかを私に説明する必要があります。あなたのリストビューには何が含まれていますか? – Vucko

+0

私のリストビューは数字を含んでいます....そして、別のクラスでそれを使用するためにタップされたときlistviewの要素の位置が欲しいです – rmdan

関連する問題