菜单,就是在键盘上按menu键,弹出来的一个对话框之类的,类似下图:
菜单的实现步骤:
第一步、
写xml文件:
1、在res目录下有一个menu文件夹(若没有则在res目录下新建一个menu文件夹),在里面新建一个android xml文件,资源类型为menu。
2、在里面添加item标签,里面需要写id和title。
代码如下:
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <item android:id="@+id/action_settings" android:title="设置"/> <item android:id="@+id/action_delete" android:title="删除"/> <item android:id="@+id/action_statrt_login" android:title="登录"/> <item android:id="@+id/action_call_phone" android:title="打电话"/> </menu>
第二步、
写java代码:
1、首先需要一个类,extends自activitylei。
2、在里面重写onCreate()、onCreateOptionsMenu()、onOptionsItemSelected()方法。
3、在oncreate()里面setContentView一个布局(也可以什么布局都不加,就是一个白版,比较丑。)
4、onCreateOptionsMenu()里面调用getMenuInflater()方法得到一个MenuInflater类型的对象,暂且命名为menuInflater,
然后在menuInflater上调用方法inflate();在里面引入menu资源。
5、onOptionsItemSelected()方法就是点击menu的监听,里面推荐用switch语句来执行点击不同menu按钮的事件响应。
import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import com.scxh.android1503.R; public class MenuOptionActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.menu_option_layout); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater menuInflater = getMenuInflater(); menuInflater.inflate(R.menu.option_menu, menu); // // menu.add(1, 11, 1, "添加"); // menu.add(1, 12, 2, "删除"); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()){ case R.id.action_settings: break; case R.id.action_delete: break; case R.id.action_statrt_login: Intent intent = new Intent(); // intent.setComponent(new ComponentName(this, EditTextActivity.class)); intent.setAction("com.scxh.android1503.ACTION_EDIT_TEXT"); startActivity(intent); // Intent intent = new Intent(this,EditTextActivity.class); // startActivity(intent); break; case R.id.action_call_phone: intent = new Intent(); intent.setAction(Intent.ACTION_DIAL); intent.setData(Uri.parse("tel:110")); startActivity(intent); break; } return super.onOptionsItemSelected(item); } } } publiclong getItemId(int position) { // TODO Auto-generated method stub return position; } //主要工作是做在这里,可以自定义布局,在这里我就不多说了 publicView getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ImageView imageview = newImageView(mcontext); imageview.setImageResource(imageIds[position]); imageview.setLayoutParams(newGallery.LayoutParams(120,120)); imageview.setScaleType(ImageView.ScaleType.FIT_CENTER); return imageview; } }