我可以创建一个OptionMenu,请参阅下面的代码。但在我的程序中,问题是我必须在每个活动中编写逻辑。
如果我有一个包含10个活动的应用程序。我必须在任何地方编写菜单代码。
我想为整个应用程序创建一个单一菜单。无论我在哪里。如果我单击硬件菜单键,那么我必须能够进入菜单。如何创建此类通用菜单?
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;
public class SimpleOptionMenu extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.animation_test);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.icon:
Toast.makeText(this, "You pressed the icon!", Toast.LENGTH_LONG)
.show();
break;
case R.id.text:
Toast.makeText(this, "You pressed the text!", Toast.LENGTH_LONG)
.show();
break;
case R.id.icontext:
Toast.makeText(this, "You pressed the icon and text!",
Toast.LENGTH_LONG).show();
break;
}
return true;
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/btn_ani"
android:layout_alignParentTop="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Click to start animation"/>
</RelativeLayout>
答案 0 :(得分:3)
只需使用onOptionsSelected方法创建一个新的Activity,并扩展此创建的Activity。
class OptionsActivity extends Activity {
public boolean onOptionsItemSelected(MenuItem item) {
...
}
}
class SimpleOptionsMenu extends OptionsActivity {
...
}
答案 1 :(得分:1)
如果要在任何地方使用相同的操作创建相同的菜单,可以创建一个扩展Activity的抽象类ActivityHelper。 您可以覆盖onCreateOptionsMenu和onOptionsItemSelected来放置您的逻辑。 然后,您只需在活动中扩展BaseActivity。
这应该可以做到!
干杯,