在看 Android Dev Guide,目前卡在 Action Bar 这里...

2015-04-27 01:32:49 +08:00
 20015jjw

这两天在看Android开发,现在的情况就是,我按照Guide上的做了,但是Action Bar上的自定义Activity显示不出来,一直只有一个默认的Settings... 似乎把xml里面关于setting的action删掉都还是只会显示settings...... 于是我在MyActivity里加入了按下各个Activity都会产生Toast的代码,依然只有Settings显示出来,而且按下之后会显示Toast。开发环境是brew下来的Android Studio,然后运行环境是Android 5.1 @ Nexus 5。啊还有在main_activity_actions.xml里,Android Studio一只提示让我用app:showAsAction,然而我让他自动补全之后依然显示不出来。不知道这里是什么问题,萌新要被搞哭了qwq。谢谢各位><

main_activity_actions.xml

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

MyActivity.java

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        Toast.makeText(getApplicationContext(), "lol", Toast.LENGTH_LONG).show();
        return true;
    }

    if (id == R.id.action_search) {
        Toast.makeText(getApplicationContext(), "lol", Toast.LENGTH_LONG).show();
        return true;
    }

    return super.onOptionsItemSelected(item);
}
8817 次点击
所在节点    Android
9 条回复
XerWandeRer
2015-04-27 01:56:26 +08:00
仔细看 Training Guide 里 Add the Actions to the Action Bar 的一部分。
20015jjw
2015-04-27 02:01:51 +08:00
@XerWandeRer 啊哈我忘记复制了抱歉,我按照他写的改动了我的MyActivity,如下:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions, menu);
return super.onCreateOptionsMenu(menu);
}
20015jjw
2015-04-27 02:02:55 +08:00
@XerWandeRer 什么鬼...................... 不支持markdown么好诡异。。。。 抱歉。。。 反正大概就是我已经有这段代码啦,依然没有啥用><
XerWandeRer
2015-04-27 02:12:26 +08:00
@20015jjw 回复不支持 Markdown,不过可以嵌入 Gist。

你这个情况应该是没有使用 main_activity_actions.xml 这个文件 inflate,所以才会出现你说的删了 settings 还是有而加了 search 却没有的情况,吧?
20015jjw
2015-04-27 02:36:19 +08:00
@XerWandeRer ok 我马上看看 谢谢!
20015jjw
2015-04-27 05:14:32 +08:00
@XerWandeRer 谢谢!解决了!><
20015jjw
2015-04-27 07:23:32 +08:00
之所以Studio一直让我使用旧版的指令,是因为我的Activity Class继承了旧版的ActionBarActivity,而不是新sdk里支持的Activity。现在问题都解决啦~ 谢谢!@XerWandeRer
hahasong
2015-04-27 10:19:44 +08:00
调试用 Log.i 啊,toast这么用也是醉了
20015jjw
2015-04-29 01:42:09 +08:00
@hahasong 啊哈 现在已经在用了xD 谢谢 刚开始嘛><

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/186559

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX