Activity
では、最初のグループビューExpandable ListView
にアクセスできますか?ここでExpandable ListViewの最初のグループのビューのハンドルを取得
は私がやっているものです:
public int getFirstVisibleGroup() {
LogUtil.i(TAG, "getFirstVisibleGroup called");
int firstVis = listView.getFirstVisiblePosition();
LogUtil.i(TAG, "firstVis = " + firstVis);
long packedPosition = listView.getExpandableListPosition(firstVis);
LogUtil.i(TAG, "packedPosition = " + packedPosition);
LogUtil.i(TAG, "firstVisibleGroup = " + ExpandableListView.getPackedPositionGroup(packedPosition));
return ExpandableListView.getPackedPositionGroup(packedPosition);
}
public View getGroupView(ExpandableListView listView, int groupPosition) {
LogUtil.i(TAG, "getGroupView called");
int flatPosition = listView.getFlatListPosition(groupPosition);
LogUtil.i(TAG, "flatPosition = " + flatPosition);
int first = getFirstVisibleGroup();
LogUtil.i(TAG, "first = " + first);
LogUtil.i(TAG, "returning child at position " + (flatPosition - first));
return listView.getChildAt(flatPosition - first);
}
をそして私はそれを呼び出す:最終的にそれはlistView.getChildAt(0)
なっ
View view = getGroupView(listView, 0);
。返されたview
はnullです。
正しい方法は何ですか?彼らは画面上にレイアウトされた後
いつ 'listView.getChildAt(0)'を呼び出そうとしていますか?それはonCreate/onResumeの間ですか?またはユーザーがビューをクリックした後ですか? 'のonCreate()'で – Budius
@Budiusは、私は、サービスコールを行い、サービスコールの結果が来たとき、私は '拡張ListView'を更新し、その後、私は上記のメソッドを呼び出します。 –