安卓功能总结1

1.使用AlertDialog.Builder 产生一个提示框.

   例如像messagebox那样的

1.    new AlertDialog.Builder(this)

2.     .setTitle("Android 提示")

3.     .setMessage("这是一个提示,请确定")

4.     .show();

带一个确定的对话框

1. new AlertDialog.Builder(this)

2.          .setMessage("这是第二个提示")

3.          .setPositiveButton("确定",

4.                          new DialogInterface.OnClickListener(){

5.                                  public void onClick(DialogInterface dialoginterface, int i){

6.                                      //按钮事件

7.                                  }

8.                          })

9.          .show();

AlertDialog.Builder 还有很多复杂的用法,有确定和取消的对话框

1. new AlertDialog.Builder(this)

2.         .setTitle("提示")

3.         .setMessage("确定退出?")

4.         .setIcon(R.drawable.quit)

5.         .setPositiveButton("确定"new DialogInterface.OnClickListener() {

6.         public void onClick(DialogInterface dialog, int whichButton) {

7.         setResult(RESULT_OK);//确定按钮事件

8.         finish();

9.         }

10.         })

11.         .setNegativeButton("取消"new DialogInterface.OnClickListener() {

12.         public void onClick(DialogInterface dialog, int whichButton) {

13.          //取消按钮事件

14.         }

15.         })

16.         .show();

2.menu实现方法

<?xml version="1.0" encoding="utf-8"?>  
<menu xmlns:android="http://schemas.android.com/apk/res/android">  
    <item   
        android:id="@+id/previous"   
        android:title="@string/previous"   
        android:enabled="false"  
        android:icon="@android:drawable/ic_media_previous"/>  
        <!--these may not be available in next api (level > 3), so be carefull-->  
    <item   
        android:id="@+id/play_pause"   
        android:title="@string/play"   
        android:icon="@android:drawable/ic_media_play"/>  
    <item   
        android:id="@+id/next"   
        android:title="@string/next"   
        android:icon="@android:drawable/ic_menu_next"/>  
</menu>


Activity类中调用刚刚创建的Menu,首先将当前的Activity与指定的Menu XML相关联:
@Override

public boolean onCreateOptionsMenu(Menu menu) {

    super.onCreateOptionsMenu(menu);

    getMenuInflater().inflate(R.layout.menu_mainactivity, menu);

    return true;

}

实现onOptionsItemSelected方法: (其目的是捕捉到菜单触发事件后,对具体触发的选项作出响应,实际调用的函数包含在各自的case)
01.@Override
02.public boolean onOptionsItemSelected(MenuItem item) {
03.    switch (item.getItemId()) {
04.    case R.id.previous:
05.        previous(); //go to previous song in the playlist
06.        return true;
07.    case R.id.play_pause:
08.        isPlaying() ? pause() : play(); //toggle play/pause
09.        return true;
10.    case R.id.next:
11.        next(); //go to next song in the playlist
12.        return true;
13.    }
14.    return false; //should never happen
15.}


最后可以通过onPrepareOptionMenu方法初始化Menu Items的属性:
01.@Override
02.public boolean onPrepareOptionsMenu(Menu menu) {
03.    //set play_pause menu item look
04.    if(isPlaying()) {
05.        menu
06.            .findItem(R.id.play_pause)
07.            .setTitle(R.string.pause)
08.            .setIcon(android.R.drawable.ic_media_pause);
09.    } else {
10.        menu
11.            .findItem(R.id.play_pause)
12.            .setTitle(R.string.play)
13.            .setIcon(android.R.drawable.ic_media_play);
14.    }
15.    return true;
16.}

第二种方法,在Activity类中动态创建Menu
首先需要定义Menu Item识别序号:
1.public static final MENU_PREVIOUS = 0; //no more R.ids
2.public static final MENU_PLAY_PAUSE = 1;
3.public static final MENU_NEXT = 2;


实现onCreateOptionMenu()方法:(第一种方法中已经通过xml定义了现成的Menu结构,所以不需要应用这个方法)
01.@Override
02.public boolean onCreateOptionsMenu(Menu menu) {
03.    menu
04.        .add(0, MENU_PREVIOUS, 0, R.string.previous)
05.        .setIcon(android.R.drawable.ic_media_previous);
06.    menu
07.        .add(0, MENU_PLAY_PAUSE, 0, R.string.play)
08.        .setIcon (android.R.drawable.ic_media_play);
09.    menu
10.        .add(0, MENU_NEXT, 0, R.string.next)
11.        .setIcon(android.R.drawable.ic_media_next);
12.    return true;
13.}


引用与第一种方法相同的方式来捕捉菜单的行为:
01.@Override
02.public boolean onOptionsItemSelected(MenuItem item) {
03.    switch (item.getItemId()) {
04.    case MENU_PREVIOUS:
05.        previous(); //go to previous song in the playlist
06.        return true;
07.    case MENU_PLAY_PAUSE:
08.        isPlaying() ? pause() : play(); //toggle play/pause
09.        return true;
10.    case MENU_NEXT:
11.        next(); //go to next song in the playlist
12.        return true;
13.    }
14.    return false; //should never happen
15.}

 

posted @ 2013-11-28 10:22  figo361  阅读(141)  评论(0编辑  收藏  举报