我需要创建一个自定义菜单的Android ..但林不知道从哪里开始.. 我已经看到了一堆不同的方法和最好的一个,我发现是简单地创建一个新的活动具有透明背景..想法是,菜单应该在屏幕右侧打开一个小列,但只是简单地“覆盖”其他布局/活动/视图。 我不确定的事情是..如果我创建这个活动作为一个菜单,并将背景设置为透明,如果用户然后按下一个按钮获得“覆盖”的活动,会发生什么?..菜单 - 活动提前消失,活动引发的点击事件?..自定义菜单,android,透明活动?
谢谢!
我需要创建一个自定义菜单的Android ..但林不知道从哪里开始.. 我已经看到了一堆不同的方法和最好的一个,我发现是简单地创建一个新的活动具有透明背景..想法是,菜单应该在屏幕右侧打开一个小列,但只是简单地“覆盖”其他布局/活动/视图。 我不确定的事情是..如果我创建这个活动作为一个菜单,并将背景设置为透明,如果用户然后按下一个按钮获得“覆盖”的活动,会发生什么?..菜单 - 活动提前消失,活动引发的点击事件?..自定义菜单,android,透明活动?
谢谢!
与几乎透明的背景和一些按钮A单独的活动是一种选择。用startActivityForResult
调用该活动。在您的按钮处理程序中,setResult
指示哪个按钮被按下,并呼叫finish()
关闭“菜单”活动。然后在“已触发”菜单的活动中,覆盖onActivityResult
,您将查看返回的代码并执行相应的操作。
在主要活动:
@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:
...
}
}
而在你的菜单活动:
@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();
}
}
...
}
您可以使用PopupWindow或自定义对话框用于这一目的。通过设置dialog.setCanceledOnTouchOutside(boolean)来选择外部点击的行为。并且为了布局菜单,您可以简单地将布局参数设置为PopupWindow或自定义对话框。这种操作不需要开始活动。
但在“主” -activity按钮,多数民众赞成,而不是“菜单” -activity ..我怎么知道按下哪个按钮上的“主” -activity ..因为我想,一旦然后如果我按透明区域,其中“主要” - 活动按钮是..那么不会有任何事件触发,因为透明区域是“菜单”的一部分 - 活动它覆盖“主要” - 活动..排序,如果像将元素放置在HTML中的a-link上.. 我的观点是按下“main” - actvity按钮不会触发任何事件的透明区域。 。要么? – Inx 2013-02-25 12:50:16
@Inx你不知道。 Android活动是异步的。当按下按钮调用菜单时,打开菜单活动,然后直接继续执行代码。它在'onActivityResult'中,你看到哪个按钮被按下。 – 2013-02-25 12:52:23
我想我可能会困惑你..或者我混乱自己:) ..无论如何..我得到如何创建菜单的一部分..并使菜单项触发evenets(或只是普通的方法)上“main”-activity .. 但是,如果“主” - 活动包含几个按钮,那么用户提出菜单,并且他/她不会按下任何菜单项......但取而代之的是hs/she按下“main” - 活动/布局中的一个按钮..是否会触发主活动上特定按钮的事件.. – Inx 2013-02-25 12:56:25