Android入门之AlertDialog
本文來自http://blog.csdn.net/hellogv/?,引用必須注明出處!
?????? 時隔一年,又要準備做Android的開發了,最近復習和整理一下Android的知識。這次要說的是AlertDialog,這種對話框會經常遇到。AlertDialog跟WIN32開發中的Dialog不一樣,AlertDialog是非阻塞的,而阻塞的對話框用的是PopupWindow。
?????? 先貼出程序運行的截圖:
main.xml的源碼:
[xhtml]?view plaincopyprint?
?
下圖是非Layout型對話框,直接使用AlertDialog
?
下圖是使用了Layout的對話框,可以自定義控件,實現更復雜的對話框
dialoglayout.xml的源碼:
[xhtml]?view plaincopyprint?
?
程序源碼:
[java]?view plaincopyprint?
package com.ceac.deng;
import android.support.v7.app.ActionBarActivity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.Toast;
import android.widget.Chronometer.OnChronometerTickListener;
public class MainActivity extends ActionBarActivity {
private Chronometer chronometer;
private Button stopButton;
private Button startButton;
private Button button;
private Button button2;
private Button button3;
private Button button4;
? ? @Override
? ? protected void onCreate(Bundle savedInstanceState) {
? ? ? ? super.onCreate(savedInstanceState);
? ? ? ? setContentView(R.layout.activity_main);
? ? ? ??
? ? ? ? findView();
? ? ? ??
? ? ? ? chronometer.setBase(SystemClock.elapsedRealtime());
// ? ? ? ?chronometer.setFormat("已經用了多少時間: ?%s");
? ? ? ? chronometer.start();
? ? ? ??
? ? ? ? chronometer.setOnChronometerTickListener(new OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
// TODO Auto-generated method stub
if (SystemClock.elapsedRealtime() - chronometer.getBase() >= 100000)
{
chronometer.stop();
}
}
});
? ? ? ??
? ? ? ? setListenner();
? ? }
? ? /**
? ? ?* findView
? ? ?*/
? ? private void findView()
? ? {
? ? chronometer = (Chronometer) findViewById(R.id.chronometer1);
? ? stopButton = (Button) findViewById(R.id.stop);
? ? startButton = (Button) findViewById(R.id.start);
? ?
? ? button = (Button) findViewById(R.id.button1);
? ? button2 = (Button) findViewById(R.id.button2);
? ? button3 = (Button) findViewById(R.id.button3);
? ? button4 = (Button) findViewById(R.id.button4);
? ?
? ?
? ? }
? ??
? ? private void setListenner()
? ? {
? ? stopButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
chronometer.stop();
System.out.println("stop chronometer....");
}
});
? ?
? ? startButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
chronometer.setBase(SystemClock.elapsedRealtime());
chronometer.start();
System.out.println("start Chronometer....");
}
});
? ?
? ? button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
// alertDialog.setIcon(R.drawable.ic_launcher);
// alertDialog.setTitle("系統提示");
// alertDialog.setMessage("帶取消 、中立、確定按鈕的對話框");
alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", listener);
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle("系統提示");
builder.setMessage("帶取消 、中立、確定按鈕的對話框");
//確定
builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
showToast("點擊了確定的按鈕");
}
});
//中立
builder.setNeutralButton("中立", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
showToast("點擊了中立按鈕");
}
});
//取消
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
showToast("點擊了取消按鈕");
}
});
builder.show();
}
});
? ?
? ?
? ? }
? ??
? ? /**
? ? ?*?
? ? ?* @param str
? ? ?*/
? ? private void showToast(String str)
? ? {
? ? Toast.makeText(MainActivity.this, str, Toast.LENGTH_LONG).show();
? ? }
? ??
? ? @Override
? ? public boolean onCreateOptionsMenu(Menu menu) {
? ? ? ? // Inflate the menu; this adds items to the action bar if it is present.
? ? ? ? getMenuInflater().inflate(R.menu.main, menu);
? ? ? ? return true;
? ? }
? ? @Override
? ? public boolean onOptionsItemSelected(MenuItem item) {
? ? ? ? // Handle action bar item clicks here. The action bar will
? ? ? ? // automatically handle clicks on the Home/Up button, so long
? ? ? ? // as you specify a parent activity in AndroidManifest.xml.
? ? ? ? int id = item.getItemId();
? ? ? ? if (id == R.id.action_settings) {
? ? ? ? ? ? return true;
? ? ? ? }
? ? ? ? return super.onOptionsItemSelected(item);
? ? }
}
總結
以上是生活随笔為你收集整理的Android入门之AlertDialog的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android】关于Android控件
- 下一篇: Android 高仿微信6.0主界面 带