【问题标题】:Use a button in the action bar with an intent to start a new activity使用操作栏中的按钮来启动新活动
【发布时间】:2015-08-08 03:51:46
【问题描述】:

我的操作栏中有如下按钮:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<!-- Search, should appear as action button -->
<item android:id="@+id/action_search"
    android:icon="@drawable/ic_action_search"
    android:title="@string/action_search"
    app:showAsAction="ifRoom"
    android:onClick="doubleBet"/>
<!-- Settings, should always be in the overflow -->
<item android:id="@+id/action_settings"
    android:title="@string/action_settings"
    app:showAsAction="never" />

我已将 onClick 添加到 action_search,以启动新活动。这是我用来启动活动的 Java。

public void doubleBet(View view){
    Intent intent = new Intent(this, DisplayMessageActivity.class);
    String x = "Hello";
    intent.putExtra("key", x); //Optional parameters
    startActivity(intent);

}

然后我在我的 DisplayMessageActivity 类中收到这样的意图:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent intent = getIntent();
    String message = intent.getStringExtra("key");
}

但是,当我运行该应用程序时,它会崩溃。这可能是什么原因?

这里是日志:

https://gist.github.com/anonymous/862e5e33a10c23d3bbc9

【问题讨论】:

  • 能贴出错误的logcat吗?

标签: android android-intent


【解决方案1】:

尝试从此更改您的 doubleBet 方法:

public void doubleBet(View view){
    Intent intent = new Intent(this, DisplayMessageActivity.class);
    String x = "Hello";
    intent.putExtra("key", x); //Optional parameters
    startActivity(intent);
}

到这里:

public boolean doubleBet(MenuItem view){
    Intent intent = new Intent(this, DisplayMessageActivity.class);
    String x = "Hello";
    intent.putExtra("key", x); //Optional parameters
    startActivity(intent);
    return true;
}

【讨论】:

  • 谢谢,这行得通。为什么将方法类型从 void 更改为 boolean 可以解决问题?
  • 不客气!我相信这是因为 Android 需要一个布尔值,而不是空值,就像在 OnOptionItemSelected 方法中一样。哦,别忘了将其标记为已接受;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多