安卓功能总结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"?> |
在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.}