1. 选项菜单(Options Menu)
a. 在 res/menu 目录下创建菜单资源文件,例如 options_menu.xml:
<!-- res/menu/options_menu.xml -->
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_item1"
android:title="Item 1"/>
<item
android:id="@+id/menu_item2"
android:title="Item 2"/>
<item
android:id="@+id/menu_item3"
android:title="Item 3"/>
</menu>
b. 在活动(Activity)中使用选项菜单:
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// 加载选项菜单资源文件
getMenuInflater().inflate(R.menu.options_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
// 处理选项菜单项的点击事件
switch (item.getItemId()) {
case R.id.menu_item1:
showToast("Item 1 selected");
return true;
case R.id.menu_item2:
showToast("Item 2 selected");
return true;
case R.id.menu_item3:
showToast("Item 3 selected");
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void showToast(String message) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
}
2. 上下文菜单(Context Menu)
a. 在活动的 onCreate 方法中为视图注册上下文菜单:
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 注册上下文菜单
TextView textView = findViewById(R.id.textView);
registerForContextMenu(textView);
}
// ...
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
// 加载上下文菜单资源文件
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
}
@Override
public boolean onContextItemSelected(@NonNull MenuItem item) {
// 处理上下文菜单项的点击事件
switch (item.getItemId()) {
case R.id.context_menu_item1:
showToast("Context Item 1 selected");
return true;
case R.id.context_menu_item2:
showToast("Context Item 2 selected");
return true;
default:
return super.onContextItemSelected(item);
}
}
}
b. 在 res/menu 目录下创建上下文菜单资源文件,例如 context_menu.xml:
<!-- res/menu/context_menu.xml -->
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/context_menu_item1"
android:title="Context Item 1"/>
<item
android:id="@+id/context_menu_item2"
android:title="Context Item 2"/>
</menu>
这两个例子展示了如何创建选项菜单和上下文菜单,并在活动中处理菜单项的点击事件。你可以根据实际需求修改菜单资源文件和处理逻辑。
转载请注明出处:http://www.zyzy.cn/article/detail/15158/Android