如果你在开发app时,发现系统给的对话框无法满足你的需求是你就可以自定义对话框。思路是1:首先要得到一个Builder对象为builder在Builder里有setAdapter(Adapter,Listener)方法这里需要一种适配器和监听。再根据你所要的实际需求去选择合适的适配器,我接下来是以android封装好的适配器 SimpleAdapter来举例子。
public void AlertDailog(View v) {
final String []name=new String[]{"hanhan","weida","siniu"};
final String[] infos=new String[]{"tomoto","cha qiufong","shabi"};
int[]imageid=new int[]{R.drawable.pag1,R.drawable.pag2,R.drawable.pag3};
List<Map<String, Object>> listItems=new ArrayList<>();//用list集合存储这些内容
for(int i=0;i<imageid.length;i++){
Map<String,Object>map=new HashMap<>();
map.put("img", imageid[i]);
map.put("title", name[i]);
map.put("img", infos[1]);
listItems.add(map);
}
simple=new SimpleAdapter(this, listItems, R.layout.simple_activity, new String[]{"img","title","img"}, new int[]{R.id.iv,R.id.tv_infos,R.id.tv_name});
//得到SimpleAdapter对象
AlertDialog.Builder builder=new Builder(this);//创建Builder对象
builder.setIcon(R.drawable.ic_launcher);//设置对话框的图标
builder.setTitle("good good study day day up");//设置对话框标题
builder.setAdapter(simple, new AlertDialog.OnClickListener() {
//用适配器填充你自定义的布局
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "你选择的是"+name[which], Toast.LENGTH_SHORT).show();
}
});
builder.show();//显示对话框
}