Android中AlertDilog顯示簡單和復雜列表的方法
本文實例講述了Android中AlertDialog顯示簡單和復雜列表的方法。分享給大家供大家參考,具體如下:
AlertDialog 顯示簡單列表 setItems
import Android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class ListDialogTest1extends Activityimplements OnClickListener
{
private Button btnListDialog;
private String[] provinces =new String[] { "上海", "北京", "湖南", "湖北", "海南" };
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnListDialog = (Button) findViewById(R.id.btnListDialog);
btnListDialog.setOnClickListener(this);
}
@Override
public void onClick(View v)
{
switch (v.getId())
{
case R.id.btnListDialog:
showListDialog();
break;
}
}
private void showListDialog()
{
AlertDialog.Builder builder =new AlertDialog.Builder(this);
builder.setTitle("請選擇省份");
/**
* 1、public Builder setItems(int itemsId, final OnClickListener
* listener) itemsId表示字符串數(shù)組的資源ID,該資源指定的數(shù)組會顯示在列表中。 2、public Builder
* setItems(CharSequence[] items, final OnClickListener listener)
* items表示用于顯示在列表中的字符串數(shù)組
*/
builder.setItems(provinces, new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog,int which)
{
/*
* ad變量用final關鍵字定義,因為在隱式實現(xiàn)的Runnable接口 的run()方法中 需要訪問final變量。
*/
final AlertDialog ad =new AlertDialog.Builder(
ListDialogTest1.this).setMessage(
"你選擇的是:" + which + ": " + provinces[which]).show();
Handler handler = new Handler();
Runnable runnable = new Runnable()
{
@Override
public void run()
{
// 調用AlertDialog類的dismiss()方法關閉對話框,也可以調用cancel()方法。
ad.dismiss();
}
};
// 5秒后運行run()方法。
handler.postDelayed(runnable, 5 * 1000);
}
});
builder.create().show();
}
}
AlertDialog 顯示復雜列表 setMultiChoiceItems
一、通過AlertDialog.Builder類的setMultiChoiceItems()方法可以創(chuàng)建列表對話框,方法如下:
1、 從資源文件中裝載數(shù)據(jù):
public Builder setMultiChoiceItems(int itemsId, boolean[]checkedItems, final OnMultiChoiceListener listener)
2、從數(shù)據(jù)集中裝載數(shù)據(jù)
public Builder setMultiChoiceItems(Cursor cursor, StringisCheckedColumn, String labelColumn, final OnMultiChoiceListenerlistener)
3、從字符串數(shù)組中裝載數(shù)據(jù)
public Builder setMultiChoiceItems(CharSequence[] items,boolean[] checkedItems, final OnMultiChoiceListener listener)
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class DiaActivity extends Activity {
/** Called when the activity is first created. */
private Button btn;
private TextView tv;
private String[] shuxing = { "字體顏色", "字體大小" };
private boolean[] chuzhi = { false, false };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button) findViewById(R.id.button1);
tv = (TextView) findViewById(R.id.textView1);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Builder b = new AlertDialog.Builder(DiaActivity.this);
b.setTitle("gggggg");
b.setMultiChoiceItems(shuxing, chuzhi,
new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which, boolean isChecked) {
switch (which) {
case 0:
chuzhi[0] = isChecked;
break;
case 1:
chuzhi[1] = isChecked;
break;
default:
break;
}
}
});
b.setPositiveButton("確定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
if (chuzhi[0] == true) {
tv.setTextColor(Color.BLUE);
}
if (chuzhi[1] == true) {
tv.setTextSize(50f);
}
}
});
b.create().show();
}
});
}
}
二、通過AlertDialog.Builder類的setSingleChoiceItems方法可以創(chuàng)建帶單按鈕的列表:方法如下:
1、從資源文件中裝載數(shù)據(jù):
public Builder setSingleChoiceItems(int itemsId, intcheckedItem, final OnClickListener listener)
2、從數(shù)據(jù)集中裝載數(shù)據(jù)
public Builder setSingleChoiceItems(Cursor cursor, intcheckedItem, String labelColumn, final OnClickListenerlistener)
3、從字符串數(shù)組中裝載數(shù)據(jù)
public Builder setSingleChoiceItems(CharSequence[] items, intcheckedItem, final OnClickListener listener)
4、從ListAdapter對象中裝載數(shù)據(jù)
public Builder setSingleChoiceItems(ListAdapter adpater, intcheckedItem, final OnClickListener listener)
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class SingleChoiceItemsTest extends Activityimplements OnClickListener
{
private String[] province = new String[] { "上海", "北京", "湖南", "湖北", "海南" };
private Button btnSingleChoiceList;
// 單擊事件對象的實例
private ButtonOnClick buttonOnClick = new ButtonOnClick(1);
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnSingleChoiceList = (Button) findViewById(R.id.btnSingleChoice);
btnSingleChoiceList.setOnClickListener(this);
}
@Override
public void onClick(View v)
{
showSingleChoiceButton();
}
// 在單選選項中顯示 確定和取消按鈕
//buttonOnClickg變量的數(shù)據(jù)類型是ButtonOnClick,一個單擊事件類
private void showSingleChoiceButton()
{
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("請選擇省份");
builder.setSingleChoiceItems(province, 0, buttonOnClick);
builder.setPositiveButton("確定", buttonOnClick);
builder.setNegativeButton("取消", buttonOnClick);
builder.show();
}
private class ButtonOnClick implements DialogInterface.OnClickListener
{
private int index; // 表示選項的索引
public ButtonOnClick(int index)
{
this.index = index;
}
@Override
public void onClick(DialogInterface dialog,int which)
{
// which表示單擊的按鈕索引,所有的選項索引都是大于0,按鈕索引都是小于0的。
if (which >= 0)
{
//如果單擊的是列表項,將當前列表項的索引保存在index中。
//如果想單擊列表項后關閉對話框,可在此處調用dialog.cancel()
//或是用dialog.dismiss()方法。
index = which;
}
else
{
//用戶單擊的是【確定】按鈕
if (which == DialogInterface.BUTTON_POSITIVE)
{
//顯示用戶選擇的是第幾個列表項。
final AlertDialog ad = new AlertDialog.Builder(
SingleChoiceItemsTest.this).setMessage(
"你選擇的地區(qū)是:" + index + ":" + province[index]).show();
//五秒鐘后自動關閉。
Handler hander = new Handler();
Runnable runnable = new Runnable()
{
@Override
public void run()
{
ad.dismiss();
}
};
hander.postDelayed(runnable, 5 * 1000);
}
//用戶單擊的是【取消】按鈕
else if (which == DialogInterface.BUTTON_NEGATIVE)
{
Toast.makeText(SingleChoiceItemsTest.this, "你沒有選擇任何東西",
Toast.LENGTH_LONG);
}
}
}
}
}
更多關于Android相關內容感興趣的讀者可查看本站專題:《Android圖形與圖像處理技巧總結》、《Android開發(fā)入門與進階教程》、《Android調試技巧與常見問題解決方法匯總》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》及《Android控件用法總結》
希望本文所述對大家Android程序設計有所幫助。
- Android中AlertDialog的六種創(chuàng)建方式
- Android AlertDialog對話框用法示例
- Android中AlertDialog各種對話框的用法實例詳解
- Android AlertDialog實現(xiàn)分享對話框/退出對話框/下載對話框
- Android中阻止AlertDialog關閉實例代碼
- Android對話框AlertDialog.Builder使用方法詳解
- Android中AlertDialog用法實例分析
- 簡析Android多種AlertDialog對話框效果
- Android使用自定義alertdialog實現(xiàn)確認退出按鈕
- Android編程之自定義AlertDialog(退出提示框)用法實例
- Android實現(xiàn)點擊AlertDialog上按鈕時不關閉對話框的方法
- Android入門之AlertDialog用法實例分析
- Android修改源碼解決Alertdialog觸摸對話框邊緣消失的問題
相關文章
快速解決Android7.0下沉浸式狀態(tài)欄變灰的問題
下面小編就為大家分享一篇快速解決Android7.0下沉浸式狀態(tài)欄變灰的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01
Android使用CountDownTimer實現(xiàn)倒計時效果
這篇文章主要為大家詳細介紹了Android使用CountDownTimer實現(xiàn)倒計時效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09
Android實現(xiàn)創(chuàng)意LoadingView動畫效果
這篇文章主要介紹了Android實現(xiàn)創(chuàng)意LoadingView動畫效果的相關資料,需要的朋友可以參考下2016-02-02

