2012-01-08 7 views
12

私はExpandableListViewを使用しています。グループを展開するときに画像を移動しようとしましたが、画像はグループビューの一部です。ここでonGroupExpandを使用してExpandableListViewの展開されたグループビューを取得します。

は私のコードです:

my_list_view.setOnGroupExpandListener(new OnGroupExpandListener() 
{ 
    @Override 
    public void onGroupExpand(int groupPosition) 
    { 
     Toast.makeText(getBaseContext(), "Group " + my_list_view.getGroupId(groupPosition), Toast.LENGTH_SHORT).show(); 
    } 
}); 

基本的に私の問題がある:私が使用できる唯一の変数がgroupPositionときにどのように私は、拡大グループビューにアクセスすることができますか?

カスタムアダプターのような応答を作成する必要はありません。私はすでにそれを試して、それは私の問題のために動作しません。私が必要とするのはonGroupExpandイベントを聞くことです。

+0

忘れる

@Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { if (isExpanded) { mContext.getResources().getDrawable(R.drawable.arrow) doSomething(); } else { doSomethingElse(); } } 

は、私にはありません。私が使うべき関数は 'getGroupView(int groupPosition、boolean isExpanded、View convertView、ViewGroup parent)'ですが、私は 'groupPosition'しか持たないということです。 'isExpanded'がtrueに設定されているはずですが、' convertView'と 'parent'はどうでしょうか? – thomaus

+0

解決策はありますか? –

+0

この回答を確認してください。それは私と一緒に働く(http://stackoverflow.com/a/22912225/5621162) –

答えて

11

最終的には、boolean isExpandedを使用しています。これは、カスタムアダプタを作成するとgetGroupViewに無料で取得します。私は、活動の中でそれをするのではなく、私が望んでいるように、物事を働かせることができました。コンストラクタで取得したコンテキストを保存すると、それを使ってリソースを取得できます。それを行う方法(とにかくビットバギーだった)私の他の答えよりもはるかに簡単ですので、本当にその1 :)

+3

ありがとう。私はすでにいくつかの時間前にこのソリューションを試していましたが、これはバグです+このクラスのグループビューを変更するのは意味がありません。これはonGroupExpandイベントの内側にある必要があります。 – thomaus

関連する問題