2017-07-22 6 views
0

動物の名前を入力して動物の音を鳴らすと、以下のコードがうまく機能しますが、200音ファイルの場合はどうすれば簡単にできます。 edittextから文字列を取得し、生のフォルダからファイルを検索して再生するようにします。 入力したテキストは、「犬」であるならば、それは「dog.mp3」Edittextで入力したテキストに基づいてオーディオファイルを検索して再生する方法

editText.addTextChangedListener(new TextWatcher() { 
       public void afterTextChanged(Editable s) { 
        { 
         String name  = editText.getText().toString(); 
         if(name.contentEquals("cow")){ 

          mp = MediaPlayer.create(Selection1Page1.this, R.raw.cow); 
          mp.start(); 
         } 
         if(name.contentEquals("bat")){ 

          mp = MediaPlayer.create(Selection1Page1.this, R.raw.bat); 
          mp.start(); 
         } 
         if(name.contentEquals("cat")){ 

          mp = MediaPlayer.create(Selection1Page1.this, R.raw.cat); 
          mp.start(); 
         } 
        } 

       } 
+0

@PPartisanおかげで、私は私ができるAndroidに新たなんだと」それを完全に得ることはできません。私はこれを学ぶために他の基本的な論理を持つことができますか? –

答えて

0

here与えられた溶液を塗布果たすべきです。どこかのユーティリティメソッド追加:

public static int getResourceIdentifierForRawFile(Context context, String fileName) { 
    final String packageName = context.getPackageName(); 
    final Resources resources = context.getResources(); 
    return resources.getIdentifier(fileName, "raw", packageName); 
} 

をとID値にファイルの名前を変換するためにそれを使用する:応答のための

final String fileName = editText.getText().toString(); 
final int fileResId = getResourceIdentifierForRawFile(this, fileName); 
//"this" assumes you are inside a class that inherits from Context, i.e. an Activity 
MediaPlayer.create(this, fileResId).start(); 
+0

ベストアンサー@Partisan、このコードは、私が必要とするものを正確に行います。唯一のことは、fileResId = 0の場合、例外を処理する必要があることです。 –

関連する問題