如何使我的android应用程序的自定义适配器中未选中的复选框不可见
我正在开发一个应用程序,其中我有一个适配器,它将在所有用户列表上显示复选框,以选择特定的人。选择特定用户或个人后,所有其他复选框都需要不可见,除了下面的“我的适配器类”中选择的用户之外如何使我的android应用程序的自定义适配器中未选中的复选框不可见,android,android-custom-view,android-adapter,custom-adapter,android-adapterview,Android,Android Custom View,Android Adapter,Custom Adapter,Android Adapterview,我正在开发一个应用程序,其中我有一个适配器,它将在所有用户列表上显示复选框,以选择特定的人。选择特定用户或个人后,所有其他复选框都需要不可见,除了下面的“我的适配器类”中选择的用户之外 public class SuggestionReplayAdapter extends BaseAdapter{ private ArrayList<SuggestionForumReplayModel> listData; private LayoutInflater layout
public class SuggestionReplayAdapter extends BaseAdapter{
private ArrayList<SuggestionForumReplayModel> listData;
private LayoutInflater layoutInflater;
private Context _context;
private int mSelectedPosition = -1;
private static CheckBox mSelectedRB;
private ImageLoader imageLoader;
private DisplayImageOptions options;
public SuggestionReplayAdapter(Context context,ArrayList<SuggestionForumReplayModel> listData){
this.listData = listData;
_context = context;
imageLoader = ImageLoader.getInstance();
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.placeholder)
.showImageForEmptyUri(R.drawable.placeholder)
.showImageOnFail(R.drawable.placeholder)
.cacheInMemory(true)
.considerExifParams(true)
.bitmapConfig(Bitmap.Config.RGB_565)
.build();
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return listData.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return listData.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder;
boolean isChecked;
if (layoutInflater == null)
layoutInflater = (LayoutInflater) _context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if(convertView == null){
convertView = layoutInflater.inflate(R.layout.suggestionfromcustomercustomerview, null);
holder = new ViewHolder();
holder.userImageiv = (ImageView) convertView.findViewById(R.id.postOwnerImage);
holder.userNametv = (TextView) convertView.findViewById(R.id.userName);
holder.replyAnswer = (TextView) convertView.findViewById(R.id.postd_text);
holder.timeEgotv = (TextView) convertView.findViewById(R.id.posted_date_and_time);
holder.selectUserRadiobutton =(CheckBox) convertView.findViewById(R.id.winner_of_suggestion);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
final SuggestionForumReplayModel suggestionItem = (SuggestionForumReplayModel) listData.get(position);
holder.userNametv.setText(suggestionItem.getSuggestion_firstname());
holder.replyAnswer.setText(suggestionItem.getSuggestion_forum_reply_content());
holder.timeEgotv.setText(suggestionItem.getSuggestion_created_date());
holder.selectUserRadiobutton.setOnClickListener(new CheckBox.OnClickListener() {
@Override
public void onClick(final View view) {
// TODO Auto-generated method stub
if(position != mSelectedPosition && mSelectedRB != null){
mSelectedRB.setChecked(false);
}
mSelectedPosition = position;
mSelectedRB = (CheckBox) view;
AlertDialog.Builder alert=new AlertDialog.Builder(_context);
alert.setTitle("Selcting User For Goodies");
alert.setMessage("Please Confirm The Selected User ");
alert.setPositiveButton("Confirm", new AlertDialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
mSelectedRB.setChecked(true);
mSelectedPosition = position;
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
if (mSelectedPosition != position) {
mSelectedRB.setChecked(true);
}
mSelectedPosition=position;
mSelectedRB.setChecked(false);
}
});
alert.show();
}
});
if (mSelectedPosition != position) {
holder.selectUserRadiobutton.setChecked(false);
} else {
holder.selectUserRadiobutton.setChecked(true);
mSelectedRB = holder.selectUserRadiobutton;
}
imageLoader.displayImage(suggestionItem.getSuggestion_profile_photo(), holder.userImageiv, options,
new SimpleImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
}
@Override
public void onLoadingFailed(String imageUri, View view,
FailReason failReason) {
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
}
}, new ImageLoadingProgressListener() {
@Override
public void onProgressUpdate(String imageUri, View view, int current,
int total) {
}
});
return convertView;
}
static class ViewHolder{
CheckBox selectUserRadiobutton;
ImageView userImageiv;
TextView userNametv;
TextView replyAnswer;
TextView timeEgotv;
}
}
公共类SuggestionReplayAdapter扩展了BaseAdapter{
私有数组列表数据;
私人停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场;
私人语境(private Context)(私人语境);;
private int mSelectedPosition=-1;
私有静态复选框mSelectedRB;
私有图像加载器;
私有显示图像选项;
公共建议ReplayAdapter(上下文上下文,ArrayList listData){
this.listData=listData;
_上下文=上下文;
imageLoader=imageLoader.getInstance();
选项=新建DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.placeholder)
.showImageForEmptyUri(R.drawable.placeholder)
.showImageOnFail(R.drawable.placeholder)
.cacheInMemory(真)
.considerExifParams(真)
.bitmapConfig(Bitmap.Config.RGB_565)
.build();
}
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回listData.size();
}
@凌驾
公共对象getItem(int位置){
//TODO自动生成的方法存根
返回listData.get(位置);
}
@凌驾
公共长getItemId(int位置){
//TODO自动生成的方法存根
返回位置;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
//TODO自动生成的方法存根
视窗座;
布尔值被检查;
if(layoutInflater==null)
layoutInflater=(layoutInflater)\u context.getSystemService(context.LAYOUT\u INFLATER\u SERVICE);
if(convertView==null){
convertView=LayoutFlater.充气(R.layout.suggestionfromcustomercustomerview,null);
holder=新的ViewHolder();
holder.userImageiv=(ImageView)convertView.findViewById(R.id.postOwnerImage);
holder.userNametv=(TextView)convertView.findViewById(R.id.userName);
holder.replyAnswer=(TextView)convertView.findViewById(R.id.postd_text);
holder.timeEgotv=(TextView)convertView.findViewById(R.id.posted\u date\u和\u time);
holder.selectUserRadiobutton=(复选框)convertView.findViewById(R.id.winner\u of\u suggestion);
convertView.setTag(支架);
}否则{
holder=(ViewHolder)convertView.getTag();
}
final SuggestionForumReplayModel suggestionItem=(SuggestionForumReplayModel)listData.get(位置);
holder.userNametv.setText(suggestionItem.getSuggestion_firstname());
holder.replyAnswer.setText(suggestionItem.getSuggestion\u forum\u reply\u content());
holder.timeEgotv.setText(suggestionItem.getSuggestion_created_date());
holder.selectUserRadiobutton.setOnClickListener(新建复选框.OnClickListener()){
@凌驾
公共void onClick(最终视图){
//TODO自动生成的方法存根
if(position!=mSelectedPosition&&mSelectedRB!=null){
mSelectedRB.setChecked(false);
}
mSelectedPosition=位置;
mSelectedRB=(复选框)视图;
AlertDialog.Builder alert=新建AlertDialog.Builder(_上下文);
alert.setTitle(“为商品选择用户”);
alert.setMessage(“请确认所选用户”);
alert.setPositiveButton(“确认”,新建AlertDialog.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
//TODO自动生成的方法存根
mSelectedRB.setChecked(true);
mSelectedPosition=位置;
}
});
alert.setNegativeButton(“取消”,新建DialogInterface.OnClickListener()){
public void onClick(对话框接口对话框,int whichButton){
//取消了。
如果(mSelectedPosition!=位置){
mSelectedRB.setChecked(true);
}
mSelectedPosition=位置;
mSelectedRB.setChecked(false);
}
});
alert.show();
}
});
如果(mSelectedPosition!=位置){
holder.selectUserRadiobutton.setChecked(假);
}否则{
holder.selectUserRadiobutton.setChecked(true);
mSelectedRB=holder.selectUserRadiobutton;
}
imageLoader.displayImage(suggestionItem.getSuggestion_profile_photo(),holder.userImageiv,选项,
新的SimpleImageLoadingListener(){
@凌驾
public void onLoadingStarted(字符串imageUri,视图){
}
@凌驾
public void onload失败(字符串imageUri、视图、,
失效原因(失效原因){
}
@凌驾
public void onLoadingComplete(字符串imageUri、视图视图、位图加载图像){
}
},新建ImageLoadingProgressListener(){
@凌驾
public void onProgressUpdate(字符串imageUri、视图视图、int-current、,
整数(总计){
}
});
返回视图;
}
静态类视窗夹{
复选框selectUserRadiobutton;
ImageView用户ImageIV;
TextView用户名电视;
文本视图应答器;
TextV
private void clearUnselectedCheckboxes() {
for (Checkbox checkbox : adapter.getCheckboxList()) {
if(checkbox.isChecked()){
checkbox.setVisibility(View.INVISIBLE);
}
}
}