我正在尝试打印片段视图中的一些项目。 我遇到的问题是我无法点击,选择列表中的项目。所有列表都是灰色的。除了勾选项目中的复选框,我无法用它做任何事情。我可以上下滚动,但没有点击一行。
这是我的片段类:
public class MyClass extends Fragment
{
ArrayList<Element> elements = new ArrayList<Element>();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.backup, container, false);
ListAdapter boxAdapter;
fillData();
boxAdapter = new ListAdapter(getActivity().getApplicationContext(), elements);
ListView lvMain = (ListView) rootView.findViewById(R.id.lvMain);
// I have no idea here on what to do
lvMain.setClickable(true);
lvMain.setChoiceMode(2);
lvMain.setFocusable(true);
lvMain.setAdapter(boxAdapter);
lvMain.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
lvMain.setFocusableInTouchMode(true);
lvMain.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, final View view,
int position, long id) {
}
});
return rootView;
}
我的列表适配器
public class ListAdapter extends BaseAdapter{
Context ctx;
LayoutInflater lInflater;
ArrayList<Element> objects;
ListAdapter(Context context, ArrayList<Element> ele) {
ctx = context;
objects = ele;
lInflater = (LayoutInflater) ctx
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
view = lInflater.inflate(R.layout.item, parent, false);
}
Element p = getElement(position);
((TextView) view.findViewById(R.id.name)).setText(p.getName());
((TextView) view.findViewById(R.id.size)).setText(p.getSize().toString());
((ImageView) view.findViewById(R.id.ivImage)).setImageResource(p.getImage());
CheckBox cb = (CheckBox) view.findViewById(R.id.cbBox);
cb.setOnCheckedChangeListener(myCheckChangList);
cb.setTag(position);
cb.setChecked(p.isBox());
return view;
}
提前感谢您的帮助
答案 0 :(得分:3)
由于您没有回复我的问题,因此我能想到的唯一原因是您将checkbox
的宽度设置为match_parent
或fill_parent
而{ {1}}正在全力以赴。
请将checkbox
的宽度设置为checkbox
,然后将其设置为不可聚焦,即不将其全部焦点放在wrap_content
,parent
上,并允许它如果可以,请关注。
listview
如果这不能解决问题,请发布您的android:focusable="false"
android:layout_width="wrap_content"
以确定实际问题。
答案 1 :(得分:1)
问题可能是你在列表项中有复选框,因为复选框是可聚焦的。
尝试查看此答案Android custom ListView with ImageButton is not getting focus