安卓:我不能让collapseActionView [英] Android: I can't make collapseActionView
本文介绍了安卓:我不能让collapseActionView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想要这样的事情:
我尽量让弹出菜单白衣collapseview,Y操作栏。但我尝试一切,我上网和没有找到解决方案上找到的东西。我没有需要suppoart的Android API小于15。
这个main.xml中
<菜单的xmlns:机器人=http://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屋!
查看全文