2012-04-24 55 views
0

我的類實現了一個onClickListener裏面,所以我這樣做:從以前的活動獲得額外的字符串值一個onClick方法

的onCreate:

final ImageButton btn_audio = (ImageButton)findViewById(R.id.btn_tool_audio); 
        btn_audio.setOnClickListener(this); 

的onClick方法:

@Override 
    public void onClick(View v) { 
     switch(v.getId()){ 
      case R.id.btn_tool_audio: 
       Bundle extras = getIntent().getExtras(); 
      String audio_text_url = extras.getString("audio_text_url"); 
       Intent launchAudio= new Intent(Intent.ACTION_VIEW, audio_text_url); 
       startActivity(launchAudio); 
       break; 

但那麼String的值是'null',問題是我如何能夠從onClick方法中的前一個活動中獲取它的值?

僅供參考,當我打電話裏面的onCreate

+0

告訴我們的代碼你在哪裏捆綁設定值 – waqaslam 2012-04-24 14:03:00

回答

2

嘗試引用onCreate中extras的字符串給成員並稍後使用它?

private String _saveMe; 

protected void onCreate(Bundle savedInstanceState) { 

    _saveMe = getIntent().getExtras().getString("audio_text_url"); 
} 
0

額外從的onCreate也許得到束並在以後使用它,我沒有在所獲得的價值任何問題。

Bundle bndl = null; 

protected void onCreate(Bundle savedInstanceState) { 
    ... 
    ... 
    bndl = getIntent().getExtras(); 
} 


@Override 
    public void onClick(View v) { 
     switch(v.getId()){ 
      case R.id.btn_tool_audio: 

      String audio_text_url = bndl.getString("audio_text_url"); 
       Intent launchAudio= new Intent(Intent.ACTION_VIEW, audio_text_url); 
       startActivity(launchAudio); 
       break; 
1

使用

Bundle extras = YOURCURRENTACTVITY.this.getIntent().getExtras(); 

,而不是

Bundle extras = getIntent().getExtras();