文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android中AlertDilog显示简单和复杂列表的方法

2022-06-06 07:51

关注

本文实例讲述了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[] { "上海", "北京", "湖南", "湖北", "海南" };
  
  @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("请选择省份");
    
    builder.setItems(provinces, new DialogInterface.OnClickListener()
    {
      @Override
      public void onClick(DialogInterface dialog,int which)
     {
      
      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 {
 
 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);
  
  @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程序设计有所帮助。

您可能感兴趣的文章:Android中AlertDialog的六种创建方式Android AlertDialog对话框用法示例Android中AlertDialog各种对话框的用法实例详解Android AlertDialog实现分享对话框/退出对话框/下载对话框Android中阻止AlertDialog关闭实例代码Android对话框AlertDialog.Builder使用方法详解Android中AlertDialog用法实例分析简析Android多种AlertDialog对话框效果Android使用自定义alertdialog实现确认退出按钮Android编程之自定义AlertDialog(退出提示框)用法实例Android实现点击AlertDialog上按钮时不关闭对话框的方法Android入门之AlertDialog用法实例分析Android修改源码解决Alertdialog触摸对话框边缘消失的问题


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯