öğesine dokunduğunuzda odağa ulaşamıyor Tamam, bu yüzden bir ExpandableListView ve alt sınıflandırılmış bir BaseExpandableListAdapter yazdım ... Çocuğun tıklatıldığında odağı almasını sağlayamadığı sürece her şey iyi çalışıyor. İztopunu kullanırsam her şey yolunda gider. Ama bir çocuğa tıklamaya çalışırsam hiçbir şekilde geri bildirim alamıyorum.GenişletilebilirListView alt öğeleri,
Android'i ayarlamayı denedim: focusable, android: focusableInTouchMode ve android: tıklanabilir (ve bunu kod aracılığıyla da denedim) ancak çalışacak hiçbir şey alamıyorum. Herhangi bir fikir? peşin
public class ExpandableAppAdapter extends BaseExpandableListAdapter
{
private PackageManager m_pkgMgr;
private Context m_context;
private List<ApplicationInfo> m_groups;
private List<List<ComponentName>> m_children;
public ExpandableAppAdapter(Context context, List<ApplicationInfo> groups, List<List<ComponentName>> children)
{
m_context = context;
m_pkgMgr = m_context.getPackageManager();
m_groups = groups;
m_children = children;
}
@Override
public Object getChild(int groupPos, int childPos)
{
return m_children.get(groupPos).get(childPos);
}
@Override
public long getChildId(int groupPos, int childPos)
{
return childPos;
}
@Override
public int getChildrenCount(int groupPos)
{
return m_children.get(groupPos).size();
}
@Override
public View getChildView(int groupPos, int childPos, boolean isLastChild, View convertView, ViewGroup parent)
{
if (convertView == null)
{
LayoutInflater inflater = LayoutInflater.from(m_context);
convertView = inflater.inflate(R.layout.expandable_app_child_row, null);
}
ComponentName child = (ComponentName)getChild(groupPos, childPos);
TextView txtView = (TextView)convertView.findViewById(R.id.item_app_pkg_name_id);
if (txtView != null)
txtView.setText(child.getPackageName());
txtView = (TextView)convertView.findViewById(R.id.item_app_class_name_id);
if (txtView != null)
txtView.setText(child.getClassName());
convertView.setFocusableInTouchMode(true);
return convertView;
}
@Override
public Object getGroup(int groupPos)
{
return m_groups.get(groupPos);
}
@Override
public int getGroupCount()
{
return m_groups.size();
}
@Override
public long getGroupId(int groupPos)
{
return groupPos;
}
@Override
public View getGroupView(int groupPos, boolean isExpanded, View convertView, ViewGroup parent)
{
if (convertView == null)
{
LayoutInflater inflater = LayoutInflater.from(m_context);
convertView = inflater.inflate(R.layout.expandable_app_group_row, null);
}
ApplicationInfo group = (ApplicationInfo)getGroup(groupPos);
ImageView imgView = (ImageView)convertView.findViewById(R.id.item_selection_icon_id);
if (imgView != null)
{
Drawable img = m_pkgMgr.getApplicationIcon(group);
imgView.setImageDrawable(img);
imgView.setMaxWidth(20);
imgView.setMaxHeight(20);
}
TextView txtView = (TextView)convertView.findViewById(R.id.item_app_name_id);
if (txtView != null)
txtView.setText(m_pkgMgr.getApplicationLabel(group));
return convertView;
}
@Override
public boolean hasStableIds()
{
return false;
}
@Override
public boolean isChildSelectable(int groupPos, int childPos)
{
return true;
}
}
Teşekkür:
İşte benim Adaptör kodudur!
Odak noktasını bir ExpandedListView programında yönetmeye çalışırken benzer sorunlar yaşıyorum. 'Wrap_content' düzeltme işleminiz neden beni kızdırıyor? – Mark
Teknik olarak bu bir yorum olarak eklenmiş olmalı ve cevap olarak değil ... – Justin
Neden çalıştığından emin değilim ama benim için çalışıyor – Justin