시나리오 : 각 탭마다 자체 목록보기가있는 n 개의 탭이 있습니다. 나는 배열 어댑터를 사용하여리스트 뷰를 생성하고있다. arrayadaper에 전달 된 배열은 객체의 배열을 가지고 있습니다. 각 개체에는 "메뉴"및 "메뉴 유형"이 있습니다. 이제 메뉴 유형에 따라 메뉴 유형이 "menugroup"인 경우 다른 레이아웃을 사용하여 그려야하며 배경을 빨간색으로 설정합니다.목록보기의 행을 무시하는 방법
질문은 간단합니다. 목록보기에서 menugroup 행을 클릭 할 때마다 아무 일도 일어나지 않아야합니다. 즉, menugroup 행에서 클릭을 무시하는 방법입니다. 이것은 onItemClick 메서드에서 메뉴 행에 발생한 클릭의 세부 사항 만 캡처해야합니다. 계속 진행할 수있는 아이디어 나 단서를 주시겠습니까? 미리 감사드립니다.
public class MyCustomAdapter extends ArrayAdapter<Menu> {
private ArrayList<Menu> menuItemList;
Context context;
LayoutInflater vi;
public MyCustomAdapter(Context context ,ArrayList<Menu> menu) {
super(context, 0, menu);
this.menuItemList = new ArrayList<Menu>();
this.menuItemList.addAll(menu);
this.context =context;
vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
private class ViewHolder {
TextView menuItem;
TextView menuGroup;
}
public int getItemViewType(int position) {
if (menuItemList.get(position).getMenuType().equals("menugroup"))
return 0;
return 1;
}
public int getViewTypeCount() {
return 2;
}
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
int type = getItemViewType(position);
if (convertView == null) {
holder = new ViewHolder();
switch (type) {
case 0:
convertView = vi.inflate(R.layout.group, null);
holder.menuItem = (TextView) convertView.findViewById(R.id.tvGroup);
convertView.setBackgroundColor(Color.RED);
break;
case 1:
convertView = vi.inflate(R.layout.item, null);
holder.menuItem = (TextView) convertView.findViewById(R.id.tvItem);
break;
}
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
switch (type) {
case 0:
holder.menuItem.setText(menuItemList.get(position).getItemName()) ;
convertView.setBackgroundColor(Color.RED);
break;
case 1:
holder.menuItem.setText(menuItemList.get(position).getItemName()) ;
break;
}
return convertView;
}
어댑터에
}
여기는 BaseAdapter입니다. ArrayAdapter를 사용하고 있습니다. ArrayAdapter에서 유용할까요? – user1822729
'ArrayAdapter'는'BaseAdapter'의 서브 클래스입니다. 그들은 모두 같은 방식으로 작동합니다. – Devunwired
정확히 당신의 도움에 감사드립니다. 그것은 작동합니까 – user1822729