使用ListView填充Dialog对话框里的item
2015-04-27 21:49
435 查看
一般弹出对话框的内容是个提醒信息,或者是“确认”和“取消”的选择信息,如果要是item是从外部获取或者很多个怎么办,下面就介绍使用ListView来填充Item,并有点击事件!
其实写法非常的简单,写一个Adapter类,调用即可
代码下载
其实写法非常的简单,写一个Adapter类,调用即可
<span style="font-family:Microsoft YaHei;font-size:14px;">package com.example.dialoaglistview; import java.util.List; import java.util.Map; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; public class DialogItemsAdapter extends BaseAdapter{ private Context context; private List<Map<String,Object>> listItems; private LayoutInflater listContainer; public DialogItemsAdapter(Context context,List<Map<String,Object>> listItems){ this.context = context; listContainer = LayoutInflater.from(context); this.listItems = listItems; } public final class ListItemView{ public TextView value; } @Override public int getCount() { return listItems.size(); } @Override public Object getItem(int position) { if(position < listItems.size()){ return listItems.get(position); } return null; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ListItemView listItemView = new ListItemView(); if (convertView == null) { convertView = listContainer.inflate(R.layout.listview_item, null); listItemView.value = (TextView) convertView .findViewById(R.id.text_item); convertView.setTag(listItemView); } else { listItemView = (ListItemView) convertView.getTag(); } listItemView.value.setText((String) listItems.get(position) .get("value")); return convertView; } } </span>然后要为ListView单独写一个布局文件
<span style="font-family:Microsoft YaHei;font-size:14px;"><?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_horizontal" android:orientation="vertical" > <TextView android:id="@+id/text_item" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="样式自己调" android:textSize="20sp" /> </LinearLayout> </span>剩下的就是调用这个Adapter了,主要代码如下
<span style="font-family:Microsoft YaHei;font-size:14px;">private void showMyDialog() { final String items[] = {"报告厅","多媒体教室","机房","美术系教室","普通教室","实训基地","实验室","体育","音乐系教室","语音室"}; List<Map<String, Object>> data = new ArrayList<Map<String,Object>>(); for(int i = 0;i<items.length;i++){ Map<String,Object> item = new HashMap<String,Object>(); item.put("value",items[i]); data.add(item); } ListView listView= new ListView(this); //构造listview对象。 DialogItemsAdapter adapter = new DialogItemsAdapter( this, data); listView.setAdapter(adapter); final AlertDialog alertDialog = new AlertDialog.Builder( this).create(); alertDialog.setCanceledOnTouchOutside(false);//使除了dialog以外的地方不能被点击 alertDialog.setTitle("选择教室类型"); alertDialog.setView(listView); alertDialog.show(); listView.setOnItemClickListener(new OnItemClickListener() {//响应listview中的item的点击事件 @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub TextView tv = (TextView) arg1 .findViewById(R.id.text_item);//取得每条item中的textview控件 textView.setText(tv.getText().toString()); alertDialog.cancel(); } }); }</span>上面的items可以从外部文件获取,也可以从网络上获取,总之,获取多个item都可以
代码下载
相关文章推荐
- 求助:对话框下OnInitDialog中使用SetTimer无效
- 使用JQUERY UI中的dialog对话框提示,如果点击确认,执行服务端代码的基本代码
- Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果
- listview中item与label交互使用
- Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果
- window.dialogArguments的使用 html弹出对话框
- Android 对话框 Dialog使用实例讲解
- Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果
- [转]Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果
- Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果
- 使用ListView界面布局、给每个item绑定监听器
- Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果
- 安卓缓冲dialog对话框,创建+使用+封装
- ListView填充多个item
- 在对话框中使用CTreeCtrl控件时,在OnNMClick消息中如何获取选中的Item以及内容
- Listview控件使用SimpleAdapter适配器实现屏幕下滑增加一个item选项以及用到的方法总结
- 使用OpenFileDialog对话框打开文本文件
- 自定义布局对话框的使用(Dialog)
- 弹出对话框AlertDialog.Builder使用笔记
- 对话框showModelessDialog()使用详解http://www.weste.net/html/200404/20040414QBI152055.html