<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<com.handmark.pulltorefresh.library.PullToRefreshScrollView
xmlns:ptr="http://schemas.android.com/apk/res-auto"
android:id="@+id/pull_refresh_scrollview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ExpandableListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/black" />
<TextView
android:id="@+id/android:empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="No items"
android:textColor="@color/White" />
</com.handmark.pulltorefresh.library.PullToRefreshScrollView>
</LinearLayout>
이 내 XML 레이아웃 파일 내가 chrisbanes 라이브러리에게 그것은 단지 클릭 가능한 항목의 확장 목록에서 첫 번째 표시됩니다 어떤 이유로 hereExpandableList
를 새로 끌어 사용하고하는 것입니다와 PullToRefresh 레이아웃, 나는 그것을 클릭 할 때이 행을 확장하지 않습니다, 나는이 주변에 재생이 일어나는 이유에 혼란 스러워요되고, 여기에 사람이 아마 말할 수있는 경우 조각 클래스
public class TestExpandFragment extends ExpandableListFragment {
private String[] divideOptions = { "Test1", "Test2", "Test3", "Test4",
"Test5", "Test6", "Test7", "Test8" };
PullToRefreshScrollView mPullRefreshScrollView;
ScrollView mScrollView;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
try {
SimpleExpandableListAdapter expListAdapter = new SimpleExpandableListAdapter(
getActivity(), createGroupList(), // Creating group List.
R.layout.group_row, // Group item layout XML.
new String[] { "1" }, // the
// key
// of
// group
// item.
new int[] { R.id.row_name }, // ID of each group item.-Data
// under the key goes into
// this TextView.
createChildList(), // childData describes second-level
// entries.
R.layout.group_child_row, // Layout for sub-level
// entries(second
// level).
new String[] { "Sub Item" }, // Keys in childData maps to
// display.
new int[] { R.id.grp_child } // Data under the keys above go
// into these TextViews.
);
setListAdapter(expListAdapter); // setting the adapter in the list.
} catch (Exception e) {
System.out.println("Errrr +++ " + e.getMessage());
}
View view = inflater.inflate(R.layout.test_expandable_fragment, container,
false);
/** Implement Pull To Refresh **/
mPullRefreshScrollView = (PullToRefreshScrollView) view
.findViewById(R.id.pull_refresh_scrollview);
mPullRefreshScrollView
.setOnRefreshListener(new OnRefreshListener<ScrollView>() {
@Override
public void onRefresh(
PullToRefreshBase<ScrollView> refreshView) {
new GetDataTask().execute();
}
});
mScrollView = mPullRefreshScrollView.getRefreshableView();
return view;
}
/* Creating the Hashmap for the row */
@SuppressWarnings("unchecked")
private List createGroupList() {
ArrayList result = new ArrayList();
for (int i = 0; i < 8; ++i) { // 8 groups........
HashMap m = new HashMap();
m.put("1", divideOptions[i]); // the key and it's value.
result.add(m);
}
return (List) result;
}
/* creatin the HashMap for the children */
@SuppressWarnings("unchecked")
private List createChildList() {
ArrayList result = new ArrayList();
for (int i = 0; i < 15; ++i) { // this -15 is the number of groups(Here
// it's fifteen)
/*
* each group need each HashMap-Here for each group we have 3
* subgroups
*/
ArrayList secList = new ArrayList();
for (int n = 0; n < 3; n++) {
HashMap child = new HashMap();
child.put("Sub Item", "Sub Item " + n);
secList.add(child);
}
result.add(secList);
}
return result;
}
public void onContentChanged() {
System.out.println("onContentChanged");
super.onContentChanged();
}
/* This function is called on each child click */
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
System.out
.println("Inside onChildClick at groupPosition = "
+ groupPosition + " Child clicked at position "
+ childPosition);
return true;
}
/* This function is called on expansion of the group */
public void onGroupExpand(int groupPosition) {
try {
System.out.println("Group exapanding Listener => groupPosition = "
+ groupPosition);
} catch (Exception e) {
System.out.println(" groupPosition Errrr +++ " + e.getMessage());
}
}
/** Sleeper for the PullToRefresh **/
private class GetDataTask extends AsyncTask<Void, Void, String[]> {
@Override
protected String[] doInBackground(Void... params) {
// Simulates a background job.
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
return null;
}
@Override
protected void onPostExecute(String[] result) {
// Do some stuff here
// Call onRefreshComplete when the list has been refreshed.
mPullRefreshScrollView.onRefreshComplete();
super.onPostExecute(result);
}
}
}
의 코드는 나 왜 이것이 일어나고 있는지 Test1 만 출력하지만 아무런 조치없이로드 할 때 새로 고침을 할 수 있습니다. 그리고 새로 고침을 풀면 작동하며 다른 코드와 함께 이전에 다른 유형의 레이아웃을 둘러 봤습니다. 이걸 보니 어쩌면 어리석은 짓 일지 모르겠지만 누군가가 문제를 더 빨리 볼 수 있다고 생각했습니다.