先看一哈效果图:真机上测试,完全没得问题得....
里面加了一个listView。
下面上源代码:
package com.example.aa;
import java.util.ArrayList;
import java.util.List;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity {
private Context context;
private LayoutInflater layoutInflater;
private List<CustomItemInfo> dataList;
private ListAdapter listAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = this;
setContentView(R.layout.activity_main);
layoutInflater = (LayoutInflater) LayoutInflater.from(context);
dataList = new ArrayList<CustomItemInfo>();
for (int i = 0; i < 10; i++) {
CustomItemInfo info = new CustomItemInfo();
info.setTxtStr(i + "号目标");
info.setCbxFlag(false);
dataList.add(info);
}
View v= layoutInflater.inflate(R.layout.app_alertdialog_list, null);
final CornerDialog cornerDialog = new CornerDialog(context, 0, 0, v, R.style.dialog);
TextView txt_dialog_title = (TextView) v.findViewById(R.id.txt_dialog_title);
Button btn_alertdialog_ok = (Button) v.findViewById(R.id.btn_alertdialog_ok);
Button btn_alertdialog_cancel = (Button) v.findViewById(R.id.btn_alertdialog_cancel);
Button btn_alertdialog_colse = (Button) v.findViewById(R.id.btn_alertdialog_colse);
btn_alertdialog_colse.setVisibility(View.VISIBLE);
View view_v1 = hzqsw_v.findViewById(R.id.view_v1);
view_v1.setVisibility(View.VISIBLE);
final ListView lv_dialog = (ListView) hzqsw_v.findViewById(R.id.lv_dialog);
lv_dialog.setVisibility(View.VISIBLE);
listAdapter = new ListAdapter(context, dataList);
lv_dialog.setAdapter(listAdapter);
lv_dialog.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
CheckBox box = (CheckBox) view.findViewById(R.id.check_dialog_item_multi);
if (box.isChecked()) {
dataList.get(position).setCbxFlag(false);
box.setChecked(false);// 不设置box联动
} else {
dataList.get(position).setCbxFlag(true);
box.setChecked(true);// 不设置box联动
}
for (int i = 0; i < dataList.size(); i++) {
Log.i("TAG4", i + ":-----:" + dataList.get(i).isCbxFlag());
}
Log.i("TAG4", "----------------------------------------");
listAdapter.notifyDataSetChanged();
}
});
txt_dialog_title.setText("多选");
btn_alertdialog_ok.setVisibility(View.VISIBLE);
btn_alertdialog_ok.setText("确定");
btn_alertdialog_ok.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < dataList.size(); i++) {
Log.i("TAG4", i + ":-----:" + dataList.get(i).isCbxFlag());
if (dataList.get(i).isCbxFlag()) {
buffer.append(dataList.get(i).getTxtStr() + ",");
}
}
listAdapter.notifyDataSetChanged();
Log.i("TAG6", buffer.toString());
cornerDialog.dismiss();
}
});
btn_alertdialog_cancel.setVisibility(View.VISIBLE);
btn_alertdialog_cancel.setText("无");
btn_alertdialog_cancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
cornerDialog.dismiss();
}
});
btn_alertdialog_colse.setText("取消");
btn_alertdialog_colse.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
cornerDialog.dismiss();
}
});
cornerDialog.show();
}
private class ListAdapter extends BaseAdapter {
private LayoutInflater layoutInflater = null;
private List<CustomItemInfo> dataList = null;
private ViewHolder viewHolder = null;
private Context context;
public ListAdapter(Context context, List<CustomItemInfo> dataList) {
layoutInflater = LayoutInflater.from(context);
this.context = context;
this.dataList = dataList;
}
@Override
public int getCount() {
return dataList == null ? 0 : dataList.size();
}
@Override
public Object getItem(int position) {
Object item = dataList == null ? null : dataList.get(position);
return item;
}
@Override
public long getItemId(int position) {
return position;
}
@SuppressLint("NewApi")
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = layoutInflater.inflate(R.layout.app_alertdialog_list_item_multi, null);
viewHolder.txt_dialog_item = (TextView) convertView.findViewById(R.id.txt_dialog_item_multi);
viewHolder.check_dialog_item = (CheckBox) convertView.findViewById(R.id.check_dialog_item_multi);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
try {
if (dataList != null && dataList.size() > 0) {
CustomItemInfo info = dataList.get(position);
viewHolder.txt_dialog_item.setText(info.getTxtStr());
viewHolder.check_dialog_item.setChecked(info.isCbxFlag());
viewHolder.check_dialog_item.setEnabled(false);
}
} catch (Exception e) {
e.printStackTrace();
}
return convertView;
}
}
public final class ViewHolder {
private TextView txt_dialog_item;
private CheckBox check_dialog_item;
}
}
下载源码请点击这里:
点击打开链接