使用者按MENU按鈕 , 顯示MENU選單 , 這題也相當簡單 , 只是要考在menu加上items的使用和AlertDialog的設定按鈕及事件 , 以下是程式碼。
package COM.TQC.GDD01;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class GDD01 extends Activity {
final int ADD = Menu.FIRST , DELETE = Menu.FIRST+1 ,
ABOUT = Menu.FIRST+2 , QUIT = Menu.FIRST+3 ;
// ...
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
//建立menu選單的項目
public boolean onCreateOptionsMenu(Menu menu)
{
super.onCreateOptionsMenu(menu);
//新增menu選單,再利用onOptionsItemSelected擷取選單選擇項目,處理相對應的事件
menu.add(0, ADD, 0, R.string.menu_add);
menu.add(0, DELETE, 1, R.string.menu_delete);
menu.add(0, ABOUT, 2, R.string.menu_about);
menu.add(0, QUIT, 3, R.string.menu_exit);
return true ;
}
//menu被選擇執行後的事件處理
public boolean onOptionsItemSelected(MenuItem item)
{
//點選menu,出現四個選擇,以switch區分點選何項,設定title並繫結至其功能
switch(item.getItemId())
{
case ADD:
case DELETE:
this.setTitle(item.getTitle());
break;
case ABOUT:
openAboutDialog();
break;
case QUIT:
openExitDialog();
break;
}
return super.onOptionsItemSelected(item) ;
}
//點選「關於」功能
public void openAboutDialog()
{
AlertDialog.Builder AB = new AlertDialog.Builder(this);
AB.setMessage(R.string.menu_about_msg)
.setTitle(R.string.menu_about)
.setPositiveButton(R.string.str_ok,
new OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
// TODO Auto-generated method stub
// 按下確認後會關閉Dialog即可
}
}
)
.show();
}
//點選「離開」功能
public void openExitDialog()
{
//開啟視窗詢問【是否確認離開系統?】,於訊息視窗點選「確認」後,關閉程式
//於訊息視窗點選「取消」,則關閉此詢問視窗,則回到MENU功能選單畫面
AlertDialog.Builder AB = new AlertDialog.Builder(this);
AB.setMessage(R.string.menu_exit_msg)
.setTitle(R.string.menu_exit)
.setPositiveButton(this.getText(R.string.str_ok),
new OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
// TODO Auto-generated method stub
GDD01.this.finish();
}
}
)
.setNegativeButton(this.getText(R.string.str_cancel),
new OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
// TODO Auto-generated method stub
// 取消關閉程式
}
}
)
.show();
}
}
這題不用額外配置layout , 所以不附上main.xml
P.S. 題目中所要求的Variable和Method皆會保留 , 也會根據題目所要求的流程去實作 , 縱使題目要求繞遠路....



可以提供程式檔案給我嗎??
回覆刪除