安卓:我不能让collapseActionView [英] Android: I can't make collapseActionView

查看:854
本文介绍了安卓:我不能让collapseActionView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想要这样的事情:

我尽量让弹出菜单白衣collapseview,Y操作栏。但我尝试一切,我上网和没有找到解决方案上找到的东西。我没有需要suppoart的Andr​​oid API小于15。

这个main.xml中

 <菜单的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android>
    <项目
        机器人:ID =@ + ID / action_settings
        机器人:orderInCategory =100
        机器人:showAsAction =从不
        机器人:标题=@字符串/ action_settings/>
    <项目机器人:ID =@ + ID / ACTION_SEARCH
          机器人:图标=@机器人:可绘制/ ic_dialog_email
          机器人:标题=@字符串/参考hello world
          机器人:showAsAction =总是| collapseActionView
          />
    <项目机器人:ID =@ + ID / action_compose
          机器人:图标=@机器人:可绘制/ btn_star
          机器人:标题=@字符串/参考hello world
          机器人:showAsAction =从不
          />
    <项目机器人:ID =@ + ID / action_compose2
          机器人:图标=@机器人:可绘制/ btn_star
          机器人:标题=@字符串/参考hello world
          机器人:showAsAction =从不
          />
&所述; /菜单>

这我的活动:

 公共类MainActivity延伸活动{    @覆盖
    保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);
        的ActionBar一个= getActionBar();
        a.setTitle(马里亚诺);
    }    @覆盖
    公共布尔onCreateOptionsMenu(菜单菜单){
        //充气操作栏中使用的菜单项
        MenuInflater吹气= getMenuInflater();
        inflater.inflate(R.menu.main,菜单);
        菜单项菜单项= menu.findItem(R.id.action_search);        MenuItemCompat.setOnActionExpandListener(菜单项,新OnActionExpandListener(){            @覆盖
            公共布尔onMenuItemActionExpand(菜单项为arg0){
                // TODO自动生成方法存根
                返回false;
            }            @覆盖
            公共布尔onMenuItemActionCollapse(菜单项为arg0){
                // TODO自动生成方法存根
                返回false;
            }
        });        返回super.onCreateOptionsMenu(菜单);
    }
    @覆盖
    公共布尔onOptionsItemSelected(菜单项项){
        返回false;
    }
}


解决方案

如果我理解正确,您想通过点击一个<$ C $打开一个 Android的弹出式菜单 C>按钮。然后,所有你需要做的就是把它添加到你的 MainActivity

 按钮1 =(按钮)findViewById(R.id.button1);
      button1.setOnClickListener(新OnClickListener(){       @覆盖
       公共无效的onClick(视图v){
        //创建PopupMenu的实例
        PopupMenu的弹出=新的PopupMenu(MainActivity.this,按钮1);
        //使用XML文件充气弹出
        。popup.getMenuInflater()膨胀(R.menu.popup_menu,popup.getMenu());        //注册弹出与OnMenuItemClickListener
        popup.setOnMenuItemClickListener(新PopupMenu.OnMenuItemClickListener(){
         公共布尔onMenuItemClick(菜单项项){
               INT I = item.getItemId();
                        如果(我== R.id.id1){
                            //做一点事
                            返回true;
                        }
                        否则,如果(我== R.id.id2){
                            //做一点事
                        }
                        否则,如果(我== R.id.id3){
                            //做一点事
                            返回true;
                        }
                        否则,如果(我== R.id.id4){
                            //做一点事
                            返回true;
                        }其他{
                            返回onMenuItemClick(项目);
                        }
        });        popup.show(); //显示弹出菜单
       }
      }); //闭合setOnClickListener方法
     }

I want to make something like that:

I try to make the popup menu whit the collapseview, y the action bar. but i try all the thing that i found on internet and no solution found. i didnt need suppoart android api less than 15.

this the main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="@string/action_settings"/>
    <item android:id="@+id/action_search"
          android:icon="@android:drawable/ic_dialog_email"
          android:title="@string/hello_world"
          android:showAsAction="always|collapseActionView"
          />
    <item android:id="@+id/action_compose"
          android:icon="@android:drawable/btn_star"
          android:title="@string/hello_world" 
          android:showAsAction="never"
          />
    <item android:id="@+id/action_compose2"
          android:icon="@android:drawable/btn_star"
          android:title="@string/hello_world" 
          android:showAsAction="never"
          />
</menu>

This my activity:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ActionBar a = getActionBar();
        a.setTitle("Mariano");


    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu items for use in the action bar
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main, menu);
        MenuItem menuItem = menu.findItem(R.id.action_search);

        MenuItemCompat.setOnActionExpandListener(menuItem, new OnActionExpandListener() {

            @Override
            public boolean onMenuItemActionExpand(MenuItem arg0) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public boolean onMenuItemActionCollapse(MenuItem arg0) {
                // TODO Auto-generated method stub
                return false;
            }
        });

        return super.onCreateOptionsMenu(menu);
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        return false;
    }
}

解决方案

If I understood correctly you want to open an Android Popup Menu by click on a Button. Then all you have to do is to add this to your MainActivity:

 button1 = (Button) findViewById(R.id.button1);  
      button1.setOnClickListener(new OnClickListener() {  

       @Override  
       public void onClick(View v) {  
        //Creating the instance of PopupMenu  
        PopupMenu popup = new PopupMenu(MainActivity.this, button1);  
        //Inflating the Popup using xml file  
        popup.getMenuInflater().inflate(R.menu.popup_menu, popup.getMenu());  

        //registering popup with OnMenuItemClickListener  
        popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {  
         public boolean onMenuItemClick(MenuItem item) {  
               int i = item.getItemId();
                        if (i == R.id.id1) {
                            //do something
                            return true;
                        }
                        else if (i == R.id.id2){
                            //do something
                        }
                        else if (i == R.id.id3) {
                            //do something
                            return true;
                        }
                        else if (i == R.id.id4) {
                            //do something
                            return true;
                        }else {
                            return onMenuItemClick(item);
                        }
        });  

        popup.show();//showing popup menu  
       }  
      });//closing the setOnClickListener method  
     }  

这篇关于安卓:我不能让collapseActionView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆