4

expandablelistview をフラグメントに追加する方法を探していました。ドキュメントを読みましたが、その方法についてまだ混乱しています。だから私は2つの質問があります:

  1. http://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/をフラグメントに変換する方法はありますか?

  2. 以下のコードではandroid:groupIndicator 、expandablelistview にインジケーターを追加しようとしましたが、表示されません。これがコードです。インジケーターを直接追加する方法はありますか?

     public class Services extends SherlockFragment {
    
    @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle    savedInstanceState) {
    View v = inflater.inflate(R.layout.services_layout, null);
    ExpandableListView elv = (ExpandableListView) v.findViewById(R.id.list);
    elv.setAdapter(new SavedTabsListAdapter());
    return v;
    }
    
    public class SavedTabsListAdapter extends BaseExpandableListAdapter {
    
    private String[] groups = { "Class 13", "Class 12", "Class 11", "Class 10", "Class 9" };
    
    private String[][] children = {
        { "Blue", "Green" },
        { "Orange", "Purple", "Black" },
        { "White", "Brown" },
        { "Golden", "Silver", "Red" },
        { "Pink", "Gray", "Yellow" }
    };
    
    @Override
    public int getGroupCount() {
        return groups.length;
    }
    
    @Override
    public int getChildrenCount(int i) {
        return children[i].length;
    }
    
    @Override
    public Object getGroup(int i) {
        return groups[i];
    }
    
    @Override
    public Object getChild(int i, int i1) {
        return children[i][i1];
    }
    
    @Override
    public long getGroupId(int i) {
        return i;
    }
    
    @Override
    public long getChildId(int i, int i1) {
        return i1;
    }
    
    @Override
    public boolean hasStableIds() {
        return true;
    }
    
    @Override
    public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {
        TextView textView = new TextView(Services.this.getActivity());
        textView.setText(getGroup(i).toString());
        textView.setBackgroundColor(0xFF3F9FE0);
        return textView;
    }
    
    @Override
    public View getChildView(int i, int i1, boolean b, View view, ViewGroup viewGroup) {
        TextView textView = new TextView(Services.this.getActivity());
        textView.setText(getChild(i, i1).toString());
        return textView;
    }
    
    @Override
    public boolean isChildSelectable(int i, int i1) {
        return true;
    }
    

    } }

4

3 に答える 3

0
  1. ここでは問題ありません。アクティビティと同じ方法でこれを行うことができます。コンテキストが必要な場合は、 を使用するだけgetActivity()です。
  2. xml コードandroid:groupIndicator="@drawable/indicator_pic"またはプログラムexpanadableListView.setGroupIndicator(R.drawable.your_pic);で . 似たようなものがここにあります。お気軽にお尋ねください。
于 2013-08-22T07:23:36.633 に答える