我需要为 android 创建一个自定义菜单..但我不确定从哪里开始.. 我见过很多不同的方法,我发现最好的方法是简单地创建一个具有透明背景的新 Activity 。这个想法是菜单应该作为屏幕右侧的一个小列打开,但只是简单地“覆盖”其他布局/Activity/ View 。 我不确定的事情是..如果我将此 Activity 创建为菜单并将背景设置为透明,如果用户然后在“覆盖”的 Activity 上按下按钮会发生什么?..菜单 Activity 会怎样消失并且 Activity 触发点击事件?..
提前致谢!
最佳答案
具有大部分透明背景和一些按钮的单独 Activity 是一个选项。使用 startActivityForResult
调用该 Activity 。在按钮的处理程序中,setResult
指示按下了哪个按钮并调用 finish()
以关闭“菜单” Activity 。然后在“触发”菜单的 Activity 中,覆盖 onActivityResult
,您将在其中查看返回的代码并执行相应的操作。
在主要 Activity 中:
@Override
public void onCreate(Bundle bdl) {
...
findViewById(R.id.button_menu).setOnClickListener(new OnClickListener() {
public void click(View v) {
Intent i = new Intent(MenuActivity.class);
startActivityForResult(i, REQUEST_MENU);
}
}
...
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == REQUEST_MENU) {
switch(resultCode) {
case MENU_ITEM_1:
...
break;
case MENU_ITEM_2:
...
break;
case MENU_ITEM_3:
...
break;
default:
...
}
}
在您的菜单 Activity 中:
@Override
public void onCreate(Bundle bdl) {
...
findViewById(R.id.menu_option_1).setOnClickListener(new OnClickListener() {
public void click(View v) {
setResult(MENU_ITEM_1);
finish();
}
findViewById(R.id.menu_option_2).setOnClickListener(new OnClickListener() {
public void click(View v) {
setResult(MENU_ITEM_1);
finish();
}
findViewById(R.id.menu_option_3).setOnClickListener(new OnClickListener() {
public void click(View v) {
setResult(MENU_ITEM_1);
finish();
}
}
...
}
关于android - 自定义菜单,android,透明 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15067187/