0

アイテムのリストを表示するダイアログを作成しました。

次に、編集目的でロングクリックイベントもキャッチする必要があります。

これをどのようにアーカイブできますか?

AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle(R.string.select_a_person);
    final UserAdapter adapter = new UserAdapter(this);
    builder.setAdapter(adapter, new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            selecteduUser = (User) adapter.getItem(which);
            if (selecteduUser != null) {
                mName.setText(selecteduUser.getName());
            }
        } 
    });
    builder.create().show();
4

1 に答える 1

0

現在、私は2つの解決策を見ています

オプション1:

独自のカスタムダイアログを作成します。リストビュー(または任意のlistactivity)を使用してアクティビティを作成し、そのテーマをダイアログとして設定します。

android:theme="@android:style/Theme.Dialog"

そこで、リストアイテムのクリックを簡単に処理できます。次に、このカスタムダイアログアクティビティを開始するときに、表示するリストデータを渡します。

オプション2:

アプローチのalertdialogでsetOnShowListenerを設定します。コードの最後の行から編集させてください

AlertDialog dialog = builder.create();

dialog.setOnShowListener(new OnShowListener() 
{       
    @Override
    public void onShow(DialogInterface dialog) 
    {       
        ListView list = ad.getListView();
        list.setOnItemLongClickListener(new OnItemLongClickListener() 
        {
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) 
            {
                // DO your task
                return true;
            }           
        });     
    }
});
dialog.show();
于 2013-03-14T16:52:14.277 に答える