单击下拉菜单后如何 运行 编码?
How do I run code once a menu drop down has been clicked?
在我的 android 应用程序中,我有一个带有按钮的操作栏。当我按下按钮时,屏幕上会出现三个下拉选项。当用户按下其中一个按钮时,我希望能够 运行 代码,例如 运行 一个函数或转到另一个 activity。我的 menu.xml 是这样格式化的并且工作正常。我只是没有办法让按钮在您按下它们时执行操作。
<item
android:id="@+id/dropMenu"
android:title=""
app:showAsAction="always"
android:icon="@drawable/threedots">
<menu>
<item
android:id="@+id/pastDays"
android:title="Past Days" />
<item
android:id="@+id/aboutApp"
android:title="About App" />
<item
android:id="@+id/setNotifications"
android:title="Set Notifications" />
</menu>
</item>
首先使用覆盖的方法 onCreateOptionsMenu() 来扩充您的菜单,如下所示:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu); // TODO: First param is your menu file
return super.onCreateOptionsMenu(menu);
}
...以及单击其中一个菜单项时的功能:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.pastDays:
// TODO: Implement functionality here
break;
case R.id.aboutApp:
// TODO: Implement functionality here
break;
case R.id.setNotifications:
// TODO: Implement functionality here
break;
}
return super.onOptionsItemSelected(item);
}
在您的 activity 中,重写 onOptionsItemSelected() 方法如下:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId()==android.R.id.home){
mDrawerLayout.openDrawer(GravityCompat.START);
}
if (item.getItemId()==R.id.pastDays){
//Do something
}
if (item.getItemId()==R.id.aboutApp){
//Do something
}
if (item.getItemId()==R.id.setNotifications){
//Do something
}
return super.onOptionsItemSelected(item);
}
在我的 android 应用程序中,我有一个带有按钮的操作栏。当我按下按钮时,屏幕上会出现三个下拉选项。当用户按下其中一个按钮时,我希望能够 运行 代码,例如 运行 一个函数或转到另一个 activity。我的 menu.xml 是这样格式化的并且工作正常。我只是没有办法让按钮在您按下它们时执行操作。
<item
android:id="@+id/dropMenu"
android:title=""
app:showAsAction="always"
android:icon="@drawable/threedots">
<menu>
<item
android:id="@+id/pastDays"
android:title="Past Days" />
<item
android:id="@+id/aboutApp"
android:title="About App" />
<item
android:id="@+id/setNotifications"
android:title="Set Notifications" />
</menu>
</item>
首先使用覆盖的方法 onCreateOptionsMenu() 来扩充您的菜单,如下所示:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu); // TODO: First param is your menu file
return super.onCreateOptionsMenu(menu);
}
...以及单击其中一个菜单项时的功能:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.pastDays:
// TODO: Implement functionality here
break;
case R.id.aboutApp:
// TODO: Implement functionality here
break;
case R.id.setNotifications:
// TODO: Implement functionality here
break;
}
return super.onOptionsItemSelected(item);
}
在您的 activity 中,重写 onOptionsItemSelected() 方法如下:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId()==android.R.id.home){
mDrawerLayout.openDrawer(GravityCompat.START);
}
if (item.getItemId()==R.id.pastDays){
//Do something
}
if (item.getItemId()==R.id.aboutApp){
//Do something
}
if (item.getItemId()==R.id.setNotifications){
//Do something
}
return super.onOptionsItemSelected(item);
}