0

だから

void ChildClick(object o, ExpandableListView.ChildClickEventArgs e)

oはクリックされたExpandableListViewであり、e.ParentはクリックされたExpandableListViewでもあり、ChildClickが実行されたグループにLinearLayoutのインスタンスを作成しようとしています。

ExpandableListView view = o;
LinearLayout group = (LinearLayout) view.GetChildAt(e.GroupPosition);

n番目の位置にあるGROUPレイアウトではなく、n番目の位置にあるLinearLayoutを返します。子がクリックされたグループ内のLinearLayoutのインスタンスを取得するにはどうすればよいですか?

4

2 に答える 2

0

あなたが取得しようとしているビュー ツリーの場所についてもよくわかりません。しかし、そのツリーにハンドルを取得したら、いつでも呼び出すことができます

view.getParent();

レベルを上げること。と

view.findViewById(R.id.yourlayoutname);

いくつかのレイヤーを実行する

于 2012-06-27T19:57:48.537 に答える
0

したがって、これは、リストビュー自体ではなく子グループの親を実際に親グループにするのではなく、ひじを回ってお尻にたどり着くように思えますが、必要なものを取得できました。

ExpandableListView view = (ExpandableListView) o;
IExpandableListAdapter mAdapter = view.ExpandableListAdapter;
string s = mAdapter.GetGroup(e.GroupPosition).ToString(); //returns comma separated string with all my values from the group layout in the clicked item group position.
string[] items = s.Split(new [] {","}, StringSplitOptions.None);

mAdapter の文字列が常に同じ数のコンマ区切り文字列を持ち、私が求めている文字列が常に同じ場所にあることを期待するだけでなく、実際のグループ レイアウトのインスタンスを取得する方法がある場合は、引き続き提案を受け付けています。グループ位置 n で実際の LinearLayout を取得したいので、その中の ID で TextView を見つけることができます。

于 2012-06-27T20:42:31.487 に答える