在本文中,我们将为您详细介绍单击android中的Menu按钮打开上下文菜单的相关知识,并且为您解答关于androidmenu点击事件的疑问,此外,我们还会提供一些关于androidContextMe
在本文中,我们将为您详细介绍单击android中的Menu按钮打开上下文菜单的相关知识,并且为您解答关于android menu点击事件的疑问,此外,我们还会提供一些关于android ContextMenu 上下文菜单示例、Android ICS上下文菜单替换、android – 单击上下文菜单、android – 在屏幕旋转后保持上下文菜单的有用信息。
本文目录一览:- 单击android中的Menu按钮打开上下文菜单(android menu点击事件)
- android ContextMenu 上下文菜单示例
- Android ICS上下文菜单替换
- android – 单击上下文菜单
- android – 在屏幕旋转后保持上下文菜单
单击android中的Menu按钮打开上下文菜单(android menu点击事件)
@Override public void onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu,v,menuInfo); menu.setHeaderTitle("Select"); menu.add(0,v.getId(),"Gmail"); menu.add(0,"Facebook"); menu.add(0,"Twitter"); } @Override public boolean onContextItemSelected(MenuItem item) { if(item.getTitle()=="Gmail"){function1(item.getItemId());} else if(item.getTitle()=="Facebook"){function2(item.getItemId());} else if(item.getTitle()=="Twitter"){function3(item.getItemId());} return true; }
如何点击菜单按钮打开上面的上下文菜单?
解决方法
Are you sure you want to open context Menu on Click of Menu button?
因为,上下文菜单适用于特定视图,
上下文菜单提供影响UI中特定项目或上下文框架的操作.您可以为任何视图提供上下文菜单,但它们通常用于ListView,GridView或其他视图集合中的项目,用户可以在其中对每个项目执行直接操作.
要在长按下显示上下文菜单,大多数客户端将要调用registerForContextMenu(View)并覆盖onCreateContextMenu(ContextMenu,View,ContextMenu.ContextMenuInfo).
对于设备的菜单按钮,您可以使用Options Menu
更新:
我从来没有试过这个,但你可以做点什么,
>处理菜单按钮按下设备事件,
public boolean onKeyUp(int keyCode,KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_MENU) { // ........ } return true; }
>把线放进去,
this.openContextMenu(view); // Here view is reference for which you have a register contect menu..
android ContextMenu 上下文菜单示例
ch2_contextmenu.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView android:id="@+id/tv"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="这是一个上下文菜单ContextMenu的示例"/>
<EditText android:id="@+id/myEd"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
ContextMenuActivity.java :
package com.example.ch7;
import com.example.baseexample.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.EditText;
import android.widget.TextView;
public class ContextMenuActivity extends Activity {
private String tempStr;
private TextView tv;
private EditText myEd;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.ch7_contextmenu);
this.registerForContextMenu(findViewById(R.id.tv));
this.registerForContextMenu(findViewById(R.id.myEd));
}
public void onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo menuInfo){
menu.setHeaderIcon(R.drawable.ic_launcher);
if(v==findViewById(R.id.tv)){
menu.add(0,1,0,"复制");
menu.add(0,2,0,"剪切");
menu.add(0,3,0,"删除");
}
if(v==findViewById(R.id.myEd)){
menu.add(0,4,0,"粘贴");
menu.add(0,5,0,"删除");
}
}
public boolean onContextItemSelected(MenuItem item){
tv = (TextView)findViewById(R.id.tv);
myEd = (EditText)findViewById(R.id.myEd);
switch(item.getItemId()){
case 1:
tempStr = tv.getText().toString();
break;
case 2:
tempStr = tv.getText().toString();
tv.setText("");
break;
case 3:
tv.setText("");
break;
case 4:
myEd.setText(tempStr);
break;
case 5:
myEd.setText("");
break;
}
return true;
}
}
Android ICS上下文菜单替换
我正在寻找有关从ICS开始似乎可以替代长按菜单的信息.
如果您使用的是最新版本的Google音乐,则可以看到该菜单,该菜单几乎可以附加在任何菜单上,并且它是一个小直角三角形.
由于现在不鼓励长按上下文菜单,并且不会在较大的屏幕上重新创建上下文菜单,因此我希望实现这些ICS菜单.我正在寻找具有此行为或该图标的规格,其间距,其大小等的视图.
解决方法:
我找到了小部件,它实际上是一个微调器. “电子邮件”应用程序的源代码有一个示例,我们可以在此处查看:
https://github.com/android/platform_packages_apps_email/blob/master/res/layout/account_setup_incoming_fragment.xml
<TextView
android:text="@string/account_setup_incoming_security_label"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?android:attr/textColorPrimary" />
<Spinner
android:id="@+id/account_security_type"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:contentDescription="@string/account_setup_incoming_security_label" />
如果我们在电子邮件程序中查看此UI,则可以看到小三角菜单,而正是这个微调器在起作用.
小三角形图标可以在这里找到:
https://github.com/android/platform_packages_apps_email/blob/master/res/drawable-hdpi/ic_mailbox_collapsed_holo_light.png
和一些示例用法可以在这里找到:
https://github.com/android/platform_packages_apps_email/blob/master/src/com/android/email/activity/MailboxFragmentAdapter.java
android – 单击上下文菜单
public class MyActivity extends ListActivity implements AdapterView.OnItemClickListener { static final String[] COUNTRIES = new String[]{ "Afghanistan","Albania","Algeria","American Samoa","Andorra","Angola","Anguilla","Antarctica" }; /** * Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setlistadapter(new ArrayAdapter<String>(this,R.layout.list_item,COUNTRIES)); ListView lv = getListView(); lv.setTextFilterEnabled(true); lv.setonItemClickListener(this); } public void onCreateContextMenu(ContextMenu menu,View v,ContextMenu.ContextMenuInfo menuInfo) { Log.e("sdklfjsdkljfl"," <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< "); menu.setHeaderTitle("HELLO"); } public void onItemClick(AdapterView<?> adapterView,View view,int i,long l) { Log.e("kjhasjkdhkas","sdkhjkhskaf"); this.openContextMenu(view); } }
解决方法
public void onListItemClick(ListView l,int position,long id){ l.showContextMenuForChild(v); }
它更加简单和优雅.实际上,这实际上是ListView类本身如何通过长按来启动上下文菜单.
android – 在屏幕旋转后保持上下文菜单
我有一个活动就是onCreate方法:
registerForContextMenu(theView);
并在onCreateContextMenu中:
super.onCreateContextMenu(menu, v, menuInfo);
menu.add(blablabla);
这很好用,但问题是当屏幕旋转时上下文菜单消失.
如何解决这个问题?
谢谢阅读!
解决方法:
这是解决方案:
contextMenu消失了,因为在默认情况下旋转android调用destroy()然后onCreate()但是:
如果你不希望Android通过正常的活动破坏和重新创建过程;相反,您想要自己处理重新创建视图,您可以在AndroidManifest.xml中的元素上使用android:configChanges属性.
<activity
android:name=".SmsPopupActivity"
android:theme="@android:style/Theme.Dialog"
android:launchMode="singleTask"
android:configChanges="orientation|keyboardHidden"
android:taskAffinity="net.everythingandroid.smspopup.popup">
</activity>
这样,当我的手机旋转时,我的contextMenu没有关闭,因为没有调用onCreate()方法.
也可以看看:
> Developing Orientation-Aware Android Applications
> activity-restart-on-rotation-android
今天关于单击android中的Menu按钮打开上下文菜单和android menu点击事件的讲解已经结束,谢谢您的阅读,如果想了解更多关于android ContextMenu 上下文菜单示例、Android ICS上下文菜单替换、android – 单击上下文菜单、android – 在屏幕旋转后保持上下文菜单的相关知识,请在本站搜索。
本文标签: