【发布时间】:2015-11-05 12:51:51
【问题描述】:
早上好/下午/晚上/晚上,
在处理我的项目时,我遇到了一个问题,我似乎无法解决。我想创建一个对话框,用户可以在其中检查多个项目并使用“添加”按钮完成。
我创建了一个自定义 baseadapter 和一个自定义对话框,其中包含一个 gridview。该对话框还包含“添加”按钮。我的目标是能够检查检查了哪些项目。
BaseAdapter 的布局中包含一些文本、图像和复选框。
对话框的构造函数:
public Custom_dialog_add(Context context, List<Oefening> oefeningList) {
super(context);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.setContentView(R.layout.custom_dialog_add);
gridView_add = (GridView) findViewById(R.id.custom_dialog_add_gridview);
imageAdapter_add = new ImageAdapter_Add(getContext(), oefeningList);
gridView_add.setAdapter(imageAdapter_add);
imageAdapter_add.notifyDataSetChanged();
// This is the add button
Button add = (Button) findViewById(R.id.custom_dialog_add_button);
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Need something to do here
}
});
}
来自 BaseAdapter 的 getView:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View gridView;
if (convertView == null) {
gridView = new View(context);
gridView = inflater.inflate(R.layout.custom_adapter_add, null);
// set value into textview
TextView textView = (TextView) gridView
.findViewById(R.id.custom_adapter_add_textview);
textView.setText(oefeningen.get(position).getName());
//Checkbox
final CheckBox checkBox = (CheckBox) gridView.findViewById(R.id.custom_adapter_add_checkbox);
checkBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (checkBox.isChecked()){
}else{
}
}
});
// set image based on selected text
ImageView imageView = (ImageView) gridView
.findViewById(R.id.custom_adapter_add_image);
} else {
gridView = (View) convertView;
}
return gridView;
}
我在网上找到了一些变通解决方案,例如将内容保存在 SharedPreferences 中,但必须有更有效和更简洁的方法...如果需要更多解释代码,请告诉我。
任何帮助将不胜感激!
谢谢
【问题讨论】:
标签: android gridview checkbox dialog baseadapter