Android studio实现菜单操作
本文实例为大家分享了Android studio实现菜单操作的具体代码,供大家参考,具体内容如下
要求:
1.设置“打开”、“关闭”和“退出”三个菜单项的菜单。
2.当单击“打开“菜单项时,使用Log.i显示”文件已打开“
3.当单击“关闭“菜单项时,使用Log.i显示”文件已关闭“
4.当单击“打开“菜单项时,使用Toast显示”确定要退出吗?“
方法一:
main.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/text1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="长时间点这"/> </LinearLayout>
menu.xml:
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/open" android:title="打开"> </item> <item android:id="@+id/close" android:title="关闭"> </item> <item android:id="@+id/quit" android:title="退出"> </item> </menu>
.java:
package com.example.first; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.ContextMenu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private static final String TAG="MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView tv=(TextView)findViewById(R.id.text1); registerForContextMenu(tv); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); MenuInflater inflater=new MenuInflater(this); inflater.inflate(R.menu.menu,menu); menu.setHeaderTitle("选择:");//为菜单头设置标题 } @Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()){ case R.id.open: Log.i(TAG, "已经打开"); break; case R.id.close: Log.i(TAG, "已经关闭"); break; case R.id.quit: Toast.makeText(this, "已经退出", Toast.LENGTH_SHORT).show(); break; } return super.onContextItemSelected(item); } }
方法二:
main.xml 啥都不写
menu.xml不变
.java改变:
package com.example.first; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; import android.util.Log; public class MainActivity extends AppCompatActivity { private static final String TAG="MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } //用onCreateOptionsMenu()显示菜单 @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu,menu);//getMenuInflater()方法得到MenuInflater //调用inflate接收两个参数 //R.menu.main指调用menu文件下的main资源文件 return true;//返回true,允许创建的菜单显示,返回false不显示 } //定义菜单响应事件 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()){ case R.id.open: Log.i(TAG, "已经打开"); break; case R.id.close: Log.i(TAG, "已经关闭"); break; case R.id.quit: Toast.makeText(this, "已经退出", Toast.LENGTH_SHORT).show(); break; } return true; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
赞 (0)