gpt4 book ai didi

Android 在单击按钮时在自定义 ListView 中隐藏和显示复选框

转载 作者:搜寻专家 更新时间:2023-11-01 08:01:18 24 4
gpt4 key购买 nike

我使用下面给出的适配器。我在图中解释。数字仅供引用。我在单行中使用 textview 和复选框。 textviews 应该出现并且复选框最初隐藏。按下按钮后复选框应该出现并且 textview 保持不变。请帮助我。提前谢谢..

enter image description here enter image description here

 public class Adapter extends ArrayAdapter<SectionsModel>{

private ArrayList<SectionsModel> list;
public Adapter(Context context, int resource, ArrayList<SectionsModel> objects) {
super(context, resource, objects);
this.list = new ArrayList<SectionsModel>();
this.list.addAll(objects);
}

ViewHolder v = new ViewHolder();
public void setcheckbox() {

Log.d("viewholser" + v, "checkbox" + v.selected);

v.selected.setVisibility(View.VISIBLE);

}

public class ViewHolder {
public TextView setting;
public CheckBox selected;
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {


ViewHolder holder = null;
if (convertView == null) {

LayoutInflater vi = (LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);

convertView = vi.inflate(R.layout.menu_frame_child, null);
holder = new ViewHolder();

holder.setting = (TextView) convertView.findViewById(R.id.child_setting_header);
holder.selected = (CheckBox) convertView.findViewById(R.id.settings_check);

// holder.selected.setVisibility(View.INVISIBLE);

convertView.setTag(holder);

//holder.selected.setVisibility(View.INVISIBLE);

holder.selected.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
CheckBox cb = (CheckBox) v;
SectionsModel _state = (SectionsModel) cb.getTag();
_state.setSelected(cb.isChecked());
}
});
} else {
holder = (ViewHolder) convertView.getTag();
}

SectionsModel section = list.get(position);

holder.setting.setText(section.getSection());
holder.selected.setChecked(section.isSelected());

holder.selected.setTag(section);

return convertView;
}

@Override
public int getCount()
{
return super.getCount();
}

@Override
public int getPosition(SectionsModel item) {

return super.getPosition(item);
}


}

更新:在 getview 我只是添加以下代码AppConstants.ischeckboxvisible 是变量,其中 Appconstants 是类,而 ischeckboxvisible 是该类的公共(public)静态变量。最初这个变量是假的

            if (!AppConstants.ischeckboxvisible)
{
holder.selected.setVisibility(View.INVISIBLE);
}
if (AppConstants.ischeckboxvisible)
{
holder.selected.setVisibility(View.VISIBLE);
}

最佳答案

以防万一有人仍然需要它。

接下来我解决了这个问题:

在 getView - ArrayAdapter 中我设置的方法:

CheckBox checkBox = (CheckBox)listItem.findViewById(R.id.checkBox);
checkBox.setVisibility(View.GONE);

然后在 setOnItemLongClickListener 中:

listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int position, long l) {

for(int i = 0; i != arrayList.size(); i++) {

mCheckBox = (CheckBox) playlist.getChildAt(i).findViewById(R.id.checkBox);
mCheckBox.setVisibility(View.VISIBLE);
}

return true;
}
});

长按任何项目后,所有复选框都会出现。

关于Android 在单击按钮时在自定义 ListView 中隐藏和显示复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20945528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com