Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android中AlertDilog顯示簡單和復雜列表的方法

Android中AlertDilog顯示簡單和復雜列表的方法

編輯:關於Android編程

本文實例講述了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表示字符串數組的資源ID,該資源指定的數組會顯示在列表中。 2、public Builder
     * setItems(CharSequence[] items, final OnClickListener listener)
     * items表示用於顯示在列表中的字符串數組
     */
    builder.setItems(provinces, new DialogInterface.OnClickListener()
    {
      @Override
      public void onClick(DialogInterface dialog,int which)
     {
      /*
      * ad變量用final關鍵字定義,因為在隱式實現的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()方法可以創建列表對話框,方法如下:

1、 從資源文件中裝載數據:

public Builder setMultiChoiceItems(int itemsId, boolean[]checkedItems, final OnMultiChoiceListener listener)

2、從數據集中裝載數據

public Builder setMultiChoiceItems(Cursor cursor, StringisCheckedColumn, String labelColumn, final OnMultiChoiceListenerlistener)

3、從字符串數組中裝載數據

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方法可以創建帶單按鈕的列表:方法如下:

1、從資源文件中裝載數據:

public Builder setSingleChoiceItems(int itemsId, intcheckedItem, final OnClickListener listener)

2、從數據集中裝載數據

public Builder setSingleChoiceItems(Cursor cursor, intcheckedItem, String labelColumn, final OnClickListenerlistener)

3、從字符串數組中裝載數據

public Builder setSingleChoiceItems(CharSequence[] items, intcheckedItem, final OnClickListener listener)

4、從ListAdapter對象中裝載數據

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變量的數據類型是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(
             "你選擇的地區是:" + 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開發入門與進階教程》、《Android調試技巧與常見問題解決方法匯總》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》及《Android控件用法總結》

希望本文所述對大家Android程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved