0

我正在使用simplecursortreeadapter来填充可扩展列表视图并希望在所有具有标题的子视图的顶部有一行数据。如何将标题行添加到使用simplecursortreeadapter的可扩展列表视图的子视图列表

  1. 组1个名称[EXPANDED]
    • 报头(日期,名称,$)
    • 儿童1(2017年7月12日,乍得,50.00)
    • 儿童2 (08/11/2017,Mike,63.21)
  2. 组2名称[扩大]
    • 头(日期,姓名,$)
    • 儿童1(2017年3月25日,肯,23.97)
    • 儿童2(2017年1月25日,威尔101.11)
  3. 组3 [折叠]

是否有可能有包含3套头文本(日期,姓名,$)与textviews只出现在该团体扩大了?由于SimpleCursorTreeAdapter处理将光标数据添加到视图中,我不知道如何添加一行到该视图或如何实现此目的。这可能吗?

编辑:这是我的适配器类:

package com.example.myproject.michaelc.billme; 

import android.content.Context; 
import android.database.Cursor; 
import android.database.MatrixCursor; 
import android.database.MergeCursor; 
import android.support.v4.content.Loader; 
import android.util.Log; 
import android.widget.SimpleCursorTreeAdapter; 

import com.example.myproject.michaelc.billme.data.BillMeContract; 

import java.util.HashMap; 

public class PayeeCursorAdapter extends SimpleCursorTreeAdapter { 

private final String LOG_TAG = getClass().getSimpleName(); 
private PayeeActivity mActivity; 
protected final HashMap<Integer, Integer> mGroupMap; 

// No cursor is added to the adapter so that it only runs when the CursorLoader runs, instead of every time the activity does 
public PayeeCursorAdapter(
     Context context,  // The activity where the adapter will be running 
     int groupLayout,  // The .xml layout file for the group layout 
     int childLayout,  // The .xml layout file for the child layout 
     String[] groupFrom,  // String of column names in the cursor that is the data for each group item 
     int[] groupTo,   // The ID of the views in the group layout that display the column from the groupFrom String[] 
     String[] childrenFrom, // String of column names in the cursor that is the data for each child item 
     int[] childrenTo) {  // The ID of the views in the child layout that display the column from the childFrom String[] 

    super(context, null, groupLayout, groupFrom, groupTo, childLayout, childrenFrom, childrenTo); 
    mActivity = (PayeeActivity) context; 
    mGroupMap = new HashMap<Integer, Integer>(); 
} 
@Override 
protected Cursor getChildrenCursor(Cursor groupCursor) { 

    int groupPos = groupCursor.getPosition(); 
    int groupId = groupCursor.getInt(groupCursor.getColumnIndex(BillMeContract.PayeeEntry._ID)); 

    Log.d(LOG_TAG, "getChildrenCursor() for groupPos " + groupPos); 
    Log.d(LOG_TAG, "getChildrenCursor() for groupId " + groupId); 

    mGroupMap.put(groupId, groupPos); 
    Loader<Cursor> loader = mActivity.getSupportLoaderManager().getLoader(groupId); 

    if(loader != null && !loader.isReset()) { 
     mActivity.getSupportLoaderManager().restartLoader(groupId, null, mActivity); 
    } else { 
     mActivity.getSupportLoaderManager().initLoader(groupId, null, mActivity); 
    } 
    return null; 
} 

public HashMap<Integer, Integer> getGroupMap(){ 
    return mGroupMap; 
} 
} 
+0

你可以发表你的适配器类? –

+0

@KiranBennyJoseph在这里,你去 –

回答

1

是它可以成为可能。

你也可以看到这个链接,希望你能得到你的解决方案。

http://www.worldbestlearningcenter.com/tips/Android-expandable-listview-header.htm

package android.widget.expandablelistview; 

import android.os.Bundle; 
import android.util.ExpandableListScenario; 
import android.widget.Button; 
import android.widget.ExpandableListView; 

public class ExpandableListWithHeaders extends ExpandableListScenario { 
private static final int[] sNumChildren = {1, 4, 3, 2, 6}; 
private static final int sNumOfHeadersAndFooters = 12; 

@Override 
protected void init(ExpandableParams params) { 
    params.setStackFromBottom(false) 
      .setStartingSelectionPosition(-1) 
      .setNumChildren(sNumChildren) 
      .setItemScreenSizeFactor(0.14) 
      .setConnectAdapter(false); 
} 

@Override 
protected void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 

    final ExpandableListView expandableListView = getExpandableListView(); 
    expandableListView.setItemsCanFocus(true); 

    for (int i = 0; i < sNumOfHeadersAndFooters; i++) { 
     Button header = new Button(this); 
     header.setText("Header View " + i); 
     expandableListView.addHeaderView(header); 
    } 

    for (int i = 0; i < sNumOfHeadersAndFooters; i++) { 
     Button footer = new Button(this); 
     footer.setText("Footer View " + i); 
     expandableListView.addFooterView(footer); 
    } 

    // Set adapter here AFTER we set header and footer views 
    setAdapter(expandableListView); 
} 

/** 
* @return The number of headers (and the same number of footers) 
*/ 
public int getNumOfHeadersAndFooters() { 
    return sNumOfHeadersAndFooters; 
} 

} 
+1

谢谢你,我会检查出来,看看我能否得到它的工作。 –