android - 自定义菜单,android,透明 Activity ?

标签 android android-activity menu transparent

我需要为 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/

相关文章:

java - 如何使用 Android 删除外部文件夹?

java - 以编程方式为 adb 网络管理启用端口 5555

android - 为什么这会使我的屏幕消失并导致手机崩溃?

android - 从 Activity 回调时 fragment 中的空指针异常

android - 从 AsyncTask 开始另一个 Activity

html - 垂直菜单中的事件元素

windows - 是否可以在 Windows 批处理文件中创建子菜单?

android - 更改 Activity 的背景颜色

android - 获取内容://Uri of Current Ringtone

jQuery 多个简单的 Rail 菜单(不是嵌套的 ul)