工作需要实现一个如图所示的对话框(卖相还不错 ),在此简单记录下,顺便分享了,大神路过就可以了…
上图:
布局文件lv_fg_dialog.xml:
<?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:background="@drawable/shape_tv_bg_white"
android:orientation="vertical" >
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@drawable/bg_line"
android:fadingEdge="none"
android:listSelector="@color/background"
android:overScrollMode="never"
android:scrollbars="none" >
</ListView>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DDD" />
<Button
android:id="@+id/id_tv_cancel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@drawable/selector_white_grey_bg"
android:padding="10dp"
android:text="取消"/>
</LinearLayout>
java 代码:
LayoutInflater mInflater = LayoutInflater.from(this);
View v = mInflater.inflate(R.layout.lv_fg_dialog, null);
final Dialog dialog = new Dialog(this);
ListView listView = (ListView) v.findViewById(R.id.listView1);
Button cancel = (Button) v.findViewById(R.id.id_tv_cancel);
cancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//TODO
dialog.dismiss();
}
});
// Dialog 显示的是ListView 需要一个适配器
final List<BankCard> list = new ArrayList<BankCard>();
list.add(new BankCard("中国工商银行", "ICBC", R.drawable.gongshang));
list.add(new BankCard("中国农业银行", "ABC", R.drawable.nongye));
list.add(new BankCard("中国建设银行", "CCB", R.drawable.jiansheyinhang));
list.add(new BankCard("中国银行", "BOC", R.drawable.zhongguoyinhang));
list.add(new BankCard("中国交通银行", "BCOM", R.drawable.jiaotong));
list.add(new BankCard("兴业银行", "CIB", R.drawable.xingye));
list.add(new BankCard("中信银行", "CITIC", R.drawable.zhongxin));
list.add(new BankCard("中国光大银行", "CEB", R.drawable.guangda));
list.add(new BankCard("平安银行", "PAB", R.drawable.pingan));
list.add(new BankCard("中国邮政储蓄银行", "PSBC", R.drawable.youzheng));
list.add(new BankCard("上海银行", "SHB", R.drawable.shanghai));
list.add(new BankCard("浦东发展银行", "SPDB", R.drawable.pufa));
// 这是慕课网上的一个万能的适配器
listView.setAdapter(new CommonAdapter<BankCard>(this, list,
R.layout.lv_dialog_bank_card_record) {
@Override
public void convert(ViewHolder holder, BankCard t, int postiion) {
holder.setText(R.id.id_tv_bankCardNumber, t.getBankName());
holder.setImageBitmap(
R.id.id_img_bankicon,
BitmapUtil.readBitMap(RechargeActivity.this,
t.getBankIconId()));
}
});
//ListView Item 的点击事件 项目的逻辑 可以忽略
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
//TODO
dialog.dismiss();
}
});
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);// 主要部分
dialog.setContentView(v, new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT));// 设置dialog显示的View,和宽高
dialog.getWindow().setBackgroundDrawable(
new ColorDrawable(Color.TRANSPARENT));// 设置dialog背景透明
dialog.show();
这里用到了一个实体类:BankCard.java
**package com.ydt.loan.bean;
/**
* @author zyh
* @version 创建时间:2015年7月10日 上午9:54:04
* 类说明:
*/
public class BankCard extends BaseBean {
/**
*
*/
private static final long serialVersionUID = 2697412335840647180L;
private String id;
private String bankName;//银行名称
private String cardNumber;//银行卡号
private String abbreviation;//银行简称
private int bankIconId;//图片本地 id
public BankCard() {
}
public BankCard(String bankName, String abbreviation,int bankIconId,String cardNum) {
super();
this.bankName = bankName;
this.abbreviation = abbreviation;
this.bankIconId=bankIconId;
this.cardNumber=cardNum;
}
public BankCard(String bankName, String abbreviation,int bankIconId) {
super();
this.bankName = bankName;
this.abbreviation = abbreviation;
this.bankIconId=bankIconId;
}
public int getBankIconId() {
return bankIconId;
}
public void setBankIconId(int bankIconId) {
this.bankIconId = bankIconId;
}
public String getAbbreviation() {
return abbreviation;
}
public void setAbbreviation(String abbreviation) {
this.abbreviation = abbreviation;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getBankName() {
return bankName;
}
public void setBankName(String bankName) {
this.bankName = bankName;
}
public String getCardNumber() {
return cardNumber;
}
public void setCardNumber(String cardNumber) {
this.cardNumber = cardNumber;
}
}
**
以上就是最简单的又优美的Dialog了。