从onClick方法中的上一个Activity获取Extra String值

时间:2012-04-24 13:57:29

标签: android

我的类实现了一个onClickListener,所以我这样做了:

的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

时获取价值没有任何问题

3 个答案:

答案 0 :(得分:2)

尝试将onCreate中的extras的String引用给成员并稍后使用它?

private String _saveMe;

protected void onCreate(Bundle savedInstanceState) {

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

答案 1 :(得分:1)

使用

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

而不是

Bundle extras = getIntent().getExtras();

答案 2 :(得分: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;