1

クリックをリッスンする が関連付けDialogFragmentられています。却下自体内のSimpleAdapter任意のアイテムをクリックすると。見えるようにする方法は?ListViewDialogFragment

public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setTitle(getResources().getString(R.string.choose_file_for_import));
        mAdapter = new MAdapter(getActivity(), R.id.file_explorer_tv_filename, itemsList);

        builder.setAdapter(mAdapter, new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialogInterface, int position) {
                File file = new File(pathList.get(position));

                        getDir(pathList.get(position));
                        mAdapter.notifyDataSetChanged();
    }
    return builder.create();
    }
4

3 に答える 3

4

2 つの選択肢があります:
AlertDialog.Builder を使用しないか、OnClickListener後に設定しbuilder.create()ます。

後にリスナーを設定するbuilder.create()

をアダプターOnClickListenerとしてセットnull

builder.setAdapter(mAdapter, null);

そして builder.create() assign の後OnItemClickListener

AlertDialog dialog = builder.create();
dialog.getListView().setOnItemClickListener(...);

私はそれをテストしていないことを告白しなければなりません.Androidのソースを調べただけです.

于 2012-08-22T16:42:01.353 に答える
1

setSingleChoiceItems()の代わりに使用してみることができますsetAdapter()。ドキュメントから:

  • adapter

    アイテムのリストを提供する ListAdapter

  • checkedItem

    チェックする項目を指定します。-1 の場合、項目はチェックされません。

  • listener

    リスト上のアイテムがクリックされたときに通知されます。項目をクリックしても、ダイアログは閉じられません。ボタンがクリックされた場合にのみ閉じられます。ボタンが指定されていない場合、ダイアログを閉じるのはユーザー次第です。

したがって、checkedItem引数として -1 を使用するだけで、希望どおりに機能するはずです。

于 2012-08-26T11:38:08.473 に答える
0

addapter の getView をオーバーライドし、View onClick リスナーをリッスンし、このリスナー内で false を返す必要があります。このようにして、誰もこのタッチ イベントを処理しないことをシステムに伝えます。

このサンプルをチェックしてください。

于 2012-08-28T07:14:23.740 に答える