我的类实现了一个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
时获取价值没有任何问题答案 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;