2016-05-30 2 views
-1

общественного класса CustomExpandableListAdapter расширяет BaseExpandableListAdapter реализует ExpandableListAdapter {expandablelistview вид ребенка индикатор вертикальной линии в андроиде

public Context context; 

private LayoutInflater vi; 
private String[][] data; 
int _objInt; 
public static Boolean checked[] = new Boolean[1]; 


private static final int GROUP_ITEM_RESOURCE = R.layout.list_group; 
private static final int CHILD_ITEM_RESOURCE = R.layout.list_item; 


public CustomExpandableListAdapter(Context context, Activity activity, String[][] data) { 
    this.data = data; 
    this.context = context; 
    vi = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    _objInt = data.length; 


} 

public String getChild(int groupPosition, int childPosition) { 
    return data[groupPosition][childPosition]; 
} 

public long getChildId(int groupPosition, int childPosition) { 
    return childPosition; 
} 

public int getChildrenCount(int groupPosition) { 
    return data[groupPosition].length; 
} 

@Override 
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { 
    View v = convertView; 
    String child = getChild(groupPosition, childPosition); 
    int id_res = 0; 
    if(groupPosition == 0){ 
     if(childPosition == 0) id_res = R.mipmap.div2; 
     if(childPosition == 1) id_res = R.mipmap.div1; 

    } 
    else if(groupPosition == 1){ 
     if(childPosition == 0) id_res = R.mipmap.div2; 
     if(childPosition == 1) id_res = R.mipmap.div1; 
    } 
    else if(groupPosition == 2){ 
     if(childPosition == 0) id_res = R.mipmap.div2; 
     if(childPosition == 1) id_res = R.mipmap.div1; 
    } 
    else if(groupPosition == 3){ 
     if(childPosition == 0) id_res = R.mipmap.div2; 
     if(childPosition == 1) id_res = R.mipmap.div3; 
     if(childPosition == 2) id_res = R.mipmap.div1; 
    } 

    if (child != null) { 
     v = vi.inflate(CHILD_ITEM_RESOURCE, null); 
     TextView text = (TextView)v.findViewById(R.id.text1); 
     ImageView imageview = (ImageView)v.findViewById(R.id.image1) ; 
     text.setText(Html.fromHtml(child)); 

     imageview.setImageResource(id_res); 
    } 
    return v; 
} 

public String getGroup(int groupPosition) { 
    return "group-" + groupPosition; 
} 
public int getGroupCount() { 
    return data.length; 
} 
public long getGroupId(int groupPosition) { 
    return groupPosition; 
} 
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { 
    View v = convertView; 
    String group = null; 
    int id_res = 0; 
    long group_id = getGroupId(groupPosition); 
    if(group_id == 0){ 
     group = "Gate Pass"; 
     id_res = R.mipmap.getpass; 
    } 
    else if(group_id == 1){ 
     group = "Vessel/Rake"; 
     id_res = R.mipmap.vessel; 
    } 
    else if(group_id == 2){ 
     group = "Last leg"; 
     id_res = R.mipmap.lastleg; 
    } 
    else if(group_id == 3){ 
     group = "Other"; 
     id_res = R.mipmap.other; 
    } 

    if (group != null) { 
     v = vi.inflate(GROUP_ITEM_RESOURCE, null); 

     TextView text = (TextView)v.findViewById(R.id.text1); 
     ImageView imageview = (ImageView)v.findViewById(R.id.image1) ; 
     ImageView img = (ImageView)v.findViewById(R.id.indicatior); 
     text.setText(Html.fromHtml(group)); 
     imageview.setImageResource(id_res); 
     if (isExpanded) { 

      img.setImageResource(R.drawable.up_arrow); 
     } else { 
      img.setImageResource(R.drawable.down_arrow); 
     } 

    } 

    return v; 
} 
public boolean isChildSelectable(int groupPosition, int childPosition) { 
    return true; 
} 
public boolean hasStableIds() { 
    return true; 
} 

} `Я хочу, чтобы нарисовать вертикальную линию для всех дочерних элементов в группе с ExpandableListView. Мой ребенок элемент является TextView, поэтому я попытался нарисовать вертикальную линию в каждом ребенке TextView, как это:

+0

@Praful Patel, пожалуйста, напишите свой код – Nisarg

+0

вы можете привести пример? – Masum

+0

мой код выше @Nisarg –

ответ

0

Для вертикальной линии добавить view в XML файла

<View 
    android:layout_width="1dp" 
    android:layout_height="fill_parent" 
    android:background="#FF0000FF" /> 

Отрегулируйте высоту в соответствии с вашими потребностями.

Смежные вопросы