2017-06-03 7 views
0

をintに変換することはできませんので、私はパートのAudioPlayerためのチュートリアルアプリケーションを追った私は、しかし、私はこのエラーを越えてくるのです、作っています:ArrayListのは

エラー:(30、43)エラー:互換性のない型を:文字列はここで

をintに変換できないコードのセクションです:

playAudio(audioList.get(0).getData()); 

これは、次のメソッドを呼び出します:

private void playAudio(int audioIndex) { 
    //Check is service is active 
    if (!serviceBound) { 
     //Store Serializable audioList to SharedPreferences 
     StorageUtil storage = new StorageUtil(getApplicationContext()); 
     storage.storeAudio(audioList); 
     storage.storeAudioIndex(audioIndex); 

     Intent playerIntent = new Intent(this, MediaPlayerService.class); 
     startService(playerIntent); 
     bindService(playerIntent, serviceConnection, Context.BIND_AUTO_CREATE); 
    } else { 
     //Store the new audioIndex to SharedPreferences 
     StorageUtil storage = new StorageUtil(getApplicationContext()); 
     storage.storeAudioIndex(audioIndex); 

     //Service is active 
     //Send a broadcast to the service -> PLAY_NEW_AUDIO 
     Intent broadcastIntent = new Intent(Broadcast_PLAY_NEW_AUDIO); 
     sendBroadcast(broadcastIntent); 
    } 
} 

int audioIndexからString audioIndexに変更すると、ストレージが保持されているコードの他の部分でエラーが発生します。

私には何が欠けていますか?

+0

私は 'getData()'が 'String'を返すと思います。あなたは 'int'引数を期待するメソッドに' String'を渡そうとしています。 – Logan

+0

audioList.get(0).getData()は実際にどのデータ型を返しますか? – v1shnu

+0

'playAudio(Integer.valueOf(audioList.get(0).getData));'を使うことができます。しかし、getDataがStringであるNumberを返すようにする必要があります。それ以外の場合はNumberFormatExceptionが発生します – v1shnu

答えて

0

数字だけが含まれていても、文字列は数字ではありません。

渡す前に文字列を変換するには、Integer.valueOf()などの変換メソッドを使用します。

real答えは:Javaの基礎を学ぶのにかなり時間を費やします。私に間違ってはいけませんが、あなたがそのような超簡単なことを知らないとき、あなたはアンドロイドの開発を遠く離れています。