2016-09-05 2 views
0

サブアクティビティを持つインテントを使用してボタンのテキストを更新しようとしていますが、なぜプレイヤーが例外をスローしたのかをデバッグするのですが、再び最初の呼び出しの結果で更新されます。メインアクティビティが再び呼び出されるまでサブアクティビティの結果で更新されない

主な活動

public class MainActivity extends AppCompatActivity { 

    static final int PICK_AUDIO_REQUEST = 1; 
    String ResultPath; 
    String path; 
    String extStorageDirectory = Environment.getExternalStorageDirectory().toString(); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     final Sound sound = new Sound(R.id.button,this); 

     sound.button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       if(sound.mp == null){ 
        Intent intent = new Intent(MainActivity.this, Pop.class); 
        startActivityForResult(intent, PICK_AUDIO_REQUEST); 
        //Pass audio file into sound 
        /*try { 
         sound.mp.setDataSource(path); 
        } catch (IOException e) { 
         e.printStackTrace(); 
        }*/ 
       } 
       else if(sound.mp.isPlaying()) { 
        sound.mp.pause(); 
       } 
       else{ 
        sound.mp.seekTo(0); 
        sound.mp.start(); 
       } 
      } 


     }); 



    } 

Subactivity

mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
            long arg3) { 
       Intent resultIntent = new Intent(); 
       resultIntent.putExtra("song path", mMusicList[arg2]); 
       setResult(Activity.RESULT_OK, resultIntent); 
       finish(); 
      } 
     }); 

例:

Intialization:

Subroutine is called and I select ring.wav from the popup

その後、ring.wavを選択しても、ボタンを再度クリックするまで正しいパスでボタンが更新されません。

onActivityResult

@Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     switch(requestCode) { 
      case (PICK_AUDIO_REQUEST) : { 
       if (resultCode == Activity.RESULT_OK) { 

        ResultPath = data.getStringExtra("song path"); 
        path = extStorageDirectory + File.separator + ResultPath; 

       } 
       break; 
      } 
     } 
    } 

答えて

0

私はpath変数が

は、これまでのところなど、である、私はonActivityResultにテキストを更新する必要があることを信じているより多くのコード(例)onActivityResultを参照してくださいする必要があります。

チェックhere

+0

私はonActivityResultを追加しました。 – Sterisk

+0

働いていれば教えてください。 – Amg91

+0

ああ、私はonActivityResultのために持っているものを投稿しました – Sterisk

0

おそらく、あなたはonActivityResultに "button.setText()"を追加します。

関連する問題