2017-04-30 5 views
-1

ちょっと私は音声認識を使用してアンドロイドプログラムを作成しようとしており、ネストされたifステートメント内のプログラムを初期化する際にエラーが発生します。助けてください。ネストされたifステートメントを使用した配列リスト

public void onClick(View v) { 
    startvoiceRecognition(); 
} 
@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) { 
     ArrayList matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); 
     ArrayList program = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); 
     //mlist.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, matches)); 
     mlist.setAdapter(new ArrayAdapter<MainActivity>(this, android.R.layout.simple_list_item_1, matches)); 
     //proglist.setAdapter(new ArrayAdapter<MainActivity>(this, android.R.layout.simple_list_item_1, program)); 
     if (matches.contains("start")){ 
      start(); 
     } 
     else if (matches.contains("program")){ 
      program(); 
      if (matches.contains("cotton")) { 
       cotton(); 
      } 
     } 
     else if (matches.contains("stop")) { 
      stop(); 
     } 

matches.contains("cotton")は、プログラム後に実行する必要がありますが実行されず、ArrayListのでスイッチケースを使用することが可能ですか?

P.S-はアンドロイドスタジオとjavaを1週間前に開始しました。

+0

は、まず、それはプログラムが含まれている必要があり、その後、次のArrayListは綿を持っている必要がありますboth..'program'と 'cotton' .. – rafsanahmad007

+0

が含まれている必要があります。 'program'は別のarraylistを作成します –

答えて

0

"cotton" if文が二重にネストされていますが、これはあなたの問題でしょうか?ステートメントの「コットン」部分に到達するようになったので、まずmatches.contains( "program")の条件を満たす必要があります。言い換えれば、あなたの「綿」状態は、「綿」と「プログラム」の両方に一致する必要があることに実際に相当します。

あなたが達成しようとしていることは正確にはわかりませんが、そのネスティングの第2レベルからの声明。すなわち:あなたの条件のArrayListから

public void onClick(View v) { 
    startvoiceRecognition(); 
} 
@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) { 
     ArrayList matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); 
     ArrayList program = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); 
     //mlist.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, matches)); 
     mlist.setAdapter(new ArrayAdapter<MainActivity>(this, android.R.layout.simple_list_item_1, matches)); 
     //proglist.setAdapter(new ArrayAdapter<MainActivity>(this, android.R.layout.simple_list_item_1, program)); 
     if (matches.contains("start")){ 
      start(); 
     } else if (matches.contains("program")){ 
      program(); 
     } 
     if (matches.contains("cotton")) { 
      cotton(); 
     } 
     } 
     else if (matches.contains("stop")) { 
      stop(); 
     } 
+0

これは動作しますが、プログラムを持っているマッチの条件を満たしてから次のインテントで綿を検索する必要があります。 –

関連する問題