1

かなり簡単な質問があります。拡張可能なリスト ビューを含むダイアログで、子をクリックすると、いくつかのアクションを実行してアクティビティに戻りたいと考えています。setOnChildClickListener()とのクリック イベントsetOnGroupClickListener()はすべて機能していますが、アラート ダイアログが閉じません。リストの子クリックでアラートダイアログを閉じて、アクティビティに戻りたいです。誰でも助けることができますか?

コード:

final AlertDialog.Builder builder = new AlertDialog.Builder(
                    TestActivity.this);

        ExpandableListView dialogExpandableListView = new ExpandableListView(
                this);
        dialogExpandableListView
                .setAdapter(new EfficienctExpandableAdapter(
                        this));
        dialogExpandableListView
                .setOnChildClickListener(new ExpandableListView.OnChildClickListener() {

                    @Override
                    public boolean onChildClick(ExpandableListView arg0,
                            View arg1, int arg2, int arg3, long arg4) {
                        // TODO Auto-generated method stub

                        Log.d("skt", "clicked parent " + arg2 + " child "
                                + arg3);

                        return false;
                    }
                });

        dialogExpandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {

            @Override
            public boolean onGroupClick(ExpandableListView arg0, View arg1, int arg2,
                    long arg3) {
                // TODO Auto-generated method stub

                Log.d("skt", "group click --- clicked parent " + arg2);
                return false;
            }
        });

        builder.setView(dialogExpandableListView);

        builder.create();
        builder.show();
4

1 に答える 1

0

ここでアラートダイアログを表示し始めたと思います

    builder.setView(dialogExpandableListView); 
    builder.create();
    builder.show();

しかし、どこでも alertView をキャンセルしていません。

ここでアラートをキャンセルしてみてください。

 @Override
                public boolean onChildClick(ExpandableListView arg0,
                        View arg1, int arg2, int arg3, long arg4) {
                 Log.d("skt", "clicked parent " + arg2 + " child "
                             + arg3);
                 builder.cancel();
                 //or
                 builder.dismiss();
                 return false;

   }

それが役に立てば幸い

于 2012-08-02T12:29:12.387 に答える