增加對話框吧!
話先說在前頭
- 另外這是一篇筆記,不是一篇教學,所以我不會寫上所有的方式,我只會寫我用的方法。
- 本篇文章是參照[深入淺出 Android -- Google 手持設備應用程式設計入門]跟著做的,所以可能會省略一些說明,詳情請參閱原本的文章。
現在我們要為程式加上一個關於的視窗。
- 首先我們要先在 import 的地方加上 android.app.AlertDialog; 。
- 在計算的 onClick 的最後面加上 openOptionsDialog(); ,然後利用上一篇教的自動的功能新增涵式吧。
- 在 openOptionsDialog(); 加上程式下面的程式碼吧。
- private void openOptionsDialog() {
- // TODO Auto-generated method stub
- new AlertDialog.Builder(Bmi2.this)
- .setTitle("關於 Android BMI2")
- .setMessage("Android BMI2 Calc")
- .setPositiveButton("OK", new
- .show();
- }
- 然後執行程式,按下計算的按鈕後就會出現下面的畫面了。
- 不過現在跳出訊息視窗之後只能按[Undo]離開這個視窗,這樣有點怪怪的,所以我們給他加上一個[確認]的按鈕。
- 要增加按鈕的話先在 import 的地方加上 android.content.DialogInterface; 。
- 然後把程式改成下面的樣子吧!增加6~13行的程式。
- private void openOptionsDialog() {
- // TODO Auto-generated method stub
- new AlertDialog.Builder(Bmi2.this)
- .setTitle("關於 Android BMI2")
- .setMessage("Android BMI2 Calc")
- .setPositiveButton("OK", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // TODO Auto-generated method stub
- }
- })
- .show();
- }
- 然後執行程式看看跳出來的視窗有什麼不一樣吧!多了一個[OK]的按鈕,這樣就可以不用按[Undo]鍵囉!
另一種方式-Toast
Toast 在顯示一段時間之後會自動消失,這樣就可以不用去按[OK]鈕了。我們直接把程式改成下面的樣子吧!- private void openOptionsDialog() {
- // TODO Auto-generated method stub
- Toast.makeText(Bmi2.this, "BMI2 計算器", Toast.LENGTH_SHORT).show();
- }
執行程式按下計算的按鈕會顯示如下圖的訊息視窗,然後過幾秒鍾後自行消失不見。
所有程式如下:
- package com.demo.android.bmi2;
- import android.app.Activity;
- import android.os.Bundle;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.TextView;
- import android.widget.Toast;
- import android.view.View;
- import android.view.View.OnClickListener;
- import java.text.DecimalFormat;
- import android.app.AlertDialog;
- import android.content.DialogInterface;
- public class Bmi2 extends Activity {
- private View btnCalc;
- private TextView fieldHeight;
- private TextView fieldWeight;
- private TextView result;
- private TextView fieldSuggest;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- findViews();
- setListeners();
- }
- private void setListeners() {
- // TODO Auto-generated method stub
- btnCalc.setOnClickListener(calcBMI);
- }
- private void findViews() {
- // TODO Auto-generated method stub
- btnCalc = (Button)findViewById(R.id.btnCalc);
- fieldHeight = (EditText)findViewById(R.id.etHeight);
- fieldWeight = (EditText)findViewById(R.id.etWeight);
- result = (TextView)findViewById(R.id.tvResult);
- fieldSuggest = (TextView)findViewById(R.id.tvSuggest);
- }
- private OnClickListener calcBMI = new OnClickListener()
- {
- public void onClick(View v)
- {
- DecimalFormat nf = new DecimalFormat("0.00");
- double height = Double.parseDouble(fieldHeight.getText().toString())/100;
- double weight = Double.parseDouble(fieldWeight.getText().toString());
- double bmi = weight / (height * height);
- result.setText("Your BMI is " + nf.format(bmi));
- if(bmi>25)
- {
- fieldSuggest.setText(R.string.advice_heavy);
- }
- else if(bmi<20)
- {
- fieldSuggest.setText(R.string.advice_light);
- }
- else
- {
- fieldSuggest.setText(R.string.advice_avg);
- }
- openOptionsDialog();
- }
- private void openOptionsDialog() {
- // TODO Auto-generated method stub
- Toast.makeText(Bmi2.this, "BMI2 計算器", Toast.LENGTH_SHORT).show();
- /*new AlertDialog.Builder(Bmi2.this)
- .setTitle("關於 Android BMI2")
- .setMessage("Android BMI2 Calc")
- .setPositiveButton("OK", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // TODO Auto-generated method stub
- }
- })
- .show();*/
- }
- };
- }
沒有留言:
張貼留言