0

私は次のコードを使用しています。しかし、警告ダイアログの却下は起こっていません。リスト ビューを持つカスタム ビューを使用しています。リスト アイテムのクリックを試みていますが、アラート ダイアログを閉じる必要があります。アイテム クリック リスナーは機能していますが、アラート ダイアログが消えません。どんな体でも私を助けることができますか?

View titleView = new View(MixContainerInfoActivity.this);
    titleView = (View)getLayoutInflater().inflate(R.layout.custom_unit_title, null);
    TextView tv = (TextView)titleView.findViewById(R.id.custom_title_txt_view);     
    tv.setTypeface(typeFace);
    tv.setText("CONTAINER OR IMPLEMENT...");

    View view = new View(MixContainerInfoActivity.this);
    view = (View)getLayoutInflater().inflate(R.layout.unit_list, null);
    containerList = (ListView)view.findViewById(R.id.unit_list_view);
    ArrayAdapter<Vector> containerAdapter = new UnitMenuAdapter(MixContainerInfoActivity.this, R.layout.custom_unit_list, containerVector);     
    containerList.setAdapter(containerAdapter);


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

     builder.setCustomTitle(titleView);
     builder.setView(view);



     final AlertDialog alert = builder.create();
     alert.show(); //edited here

     containerList.setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                System.out.println("Item Clicked..");

                alert.dismiss();

            }
        });
4

2 に答える 2

2

これを試してみて、何が起こるか教えてください。

AlertDialog.Builder builder = new AlertDialog.Builder(MixContainerInfoActivity.this);
View view = new View(MixContainerInfoActivity.this);
view = (View)getLayoutInflater().inflate(R.layout.unit_list, null);
builder.setCustomTitle(titleView);
builder.setView(view);
containerList = (ListView)view.findViewById(R.id.unit_list_view);
ArrayAdapter<Vector> containerAdapter = new UnitMenuAdapter(MixContainerInfoActivity.this, R.layout.custom_unit_list, containerVector);     
containerList.setAdapter(containerAdapter);
final AlertDialog alert = builder.create();
alert.show();

containerList.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                System.out.println("Item Clicked..");
                alert.dismiss();
            }
        });
于 2012-04-19T09:30:35.393 に答える
0

リストの項目がクリックされると、 setOnItemClickListenerが発生します。ダイアログはリストの上に表示されるため、リストの項目をクリックすることはできません。代わりに、ビルダーに次の行を追加し、setOnItemClickListenerを削除する必要があります。

//it will dismiss the dialog automatically
builder.setNegativeButton("OK", null);
于 2012-04-19T09:20:41.640 に答える