V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
20015jjw
V2EX  ›  Android

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

  •  
  •   20015jjw · 2015-04-27 01:32:49 +08:00 · 8433 次点击
    这是一个创建于 3481 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这两天在看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);
    }
    
    9 条回复    2015-04-29 01:42:09 +08:00
    XerWandeRer
        1
    XerWandeRer  
       2015-04-27 01:56:26 +08:00   ❤️ 1
    仔细看 Training Guide 里 Add the Actions to the Action Bar 的一部分。
    20015jjw
        2
    20015jjw  
    OP
       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
        3
    20015jjw  
    OP
       2015-04-27 02:02:55 +08:00
    @XerWandeRer 什么鬼...................... 不支持markdown么好诡异。。。。 抱歉。。。 反正大概就是我已经有这段代码啦,依然没有啥用><
    XerWandeRer
        4
    XerWandeRer  
       2015-04-27 02:12:26 +08:00   ❤️ 1
    @20015jjw 回复不支持 Markdown,不过可以嵌入 Gist。

    你这个情况应该是没有使用 main_activity_actions.xml 这个文件 inflate,所以才会出现你说的删了 settings 还是有而加了 search 却没有的情况,吧?
    20015jjw
        5
    20015jjw  
    OP
       2015-04-27 02:36:19 +08:00
    @XerWandeRer ok 我马上看看 谢谢!
    20015jjw
        6
    20015jjw  
    OP
       2015-04-27 05:14:32 +08:00
    @XerWandeRer 谢谢!解决了!><
    20015jjw
        7
    20015jjw  
    OP
       2015-04-27 07:23:32 +08:00
    之所以Studio一直让我使用旧版的指令,是因为我的Activity Class继承了旧版的ActionBarActivity,而不是新sdk里支持的Activity。现在问题都解决啦~ 谢谢!@XerWandeRer
    hahasong
        8
    hahasong  
       2015-04-27 10:19:44 +08:00   ❤️ 1
    调试用 Log.i 啊,toast这么用也是醉了
    20015jjw
        9
    20015jjw  
    OP
       2015-04-29 01:42:09 +08:00
    @hahasong 啊哈 现在已经在用了xD 谢谢 刚开始嘛><
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1237 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:23 · PVG 07:23 · LAX 15:23 · JFK 18:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.