AlertDialog中使用ListView绑定数据

Posted meetweb--触网成就未来

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AlertDialog中使用ListView绑定数据相关的知识,希望对你有一定的参考价值。

在实际工作过程中,单单使用AlertDialog的单选功能不一定能满足我们的需求,需要绑定数据到 listview 

 

1. 自定义Layout

LayoutInflater factory = LayoutInflater.from(DialogActivity.this);
final View view = factory.inflate(R.layout.linerlayout, null);

2,构造数据
List<Map<String, String>> nameList = new ArrayList<Map<String, String>>();//建立一个数组存储listview上显示的数据
for (int m = 0; m < 15; m++) {//initData为一个list类型的数据源
Map<String, String> nameMap = new HashMap<String, String>();
nameMap.put("name", "name"+m);
nameMap.put("id", m+"");
nameList.add(nameMap);
}

3ListView数据绑定
listView= (ListView) view.findViewById(R.id.lv_list);

listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
SimpleAdapter adapter = new SimpleAdapter(DialogActivity.this,
nameList, R.layout.item,
new String[] { "name","id" },
new int[] { R.id.tv1 ,R.id.tv2});
listView.setAdapter(adapter);

4.
AlertDialog 绑定
  final AlertDialog dialog = new AlertDialog.Builder(this)
.setTitle("选择姓名").setView(view)//在这里把写好的这个listview的布局加载dialog中
.setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.cancel();
}
}).create();
dialog.setCanceledOnTouchOutside(false);//使除了dialog以外的地方不能被点击
dialog.show();
5. LIstview 点击事件
 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {//响应listview中的item的点击事件

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Log.d("TAG","ok");
// TODO Auto-generated method stub
TextView btn = (TextView) arg1 .findViewById(R.id.tv2);//取得每条item中的textview控件
// et_name.setText(tv.getText().toString());


Log.d("TAG",btn.getText().toString());
// dialog.cancel();
}
});
 

以上是关于AlertDialog中使用ListView绑定数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ListView 和 AlertDialog 中设置自定义字体?

带有 ListView 和底部 TextField 的 Flutter AlertDialog

Android AlertDialog 动态更新里面的ListView数据

Android在ListView点击事件中关闭AlertDialog

当 AlertDialog 中的复选框选中或未选中时,Flutter 更新 Reorderable ListView

请问在AlertDialog中如何再此嵌入AlertDialog