2016-05-26 12 views
-1

カスタムリストビューも追加したいアラートダイアログもリストから項目を選択して(setPositiveButton)をクリックしてダイアログを閉じると、テキストが正常に変更されますが、アプリケーションは、残念ながらカスタムリストビューを警告ダイアログに追加する

public void onClick(View v) {    // TODO Auto-generated method stub 
      AlertDialog.Builder builder= new AlertDialog.Builder(MainActivity.this); 
      builder.setCancelable(true); 
      builder.setView(v); 
      builder.setPositiveButton("Done", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int id){ 
        dialog.cancel(); 
       } 
      }); 
      builder.setView(listView); 
      AlertDialog dialog= builder.create(); 
      dialog.show(); 
     } 
    }); 
+0

ここにいくつかのコードをダンプしましたが、あなたの質問は何ですか?あなたは何を達成したいのですか?あなたが直面している問題は何ですか? –

答えて

0

あなたはこの

はArrayAdapter(そのあなたのケースでは)

オーバーライドgetViewメソッドとしてクラスを拡張してcostomアダプタを作成してみてくださいを停止よりも、表示または変更の選択のために乗客のボタン() 関数(また、ビューを膨らませる)。

は、その後、あなたは、直接私は、それはあなたのための完全な助けと思う警告ダイアログ

AlertDialog.Builder alertdialog = new AlertDialog.Builder(context); 
LayoutInflater inflaterr = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View viewtemplelayout= inflaterr.inflate(R.layout.product_popup, null); 
    YourAdapter adap=new YourAdapter(R.layout.product_add_popup_adapter,context); 
    list.setAdapter(adap); 
    alertdialog.setView(viewtemplelayout); 
    alertdialog.show() 

内のリストビューを設定するためにこれらを試してみてください

builder.setAdapter(costomAdapter); 
1

を使用して、アダプタを設定することができます。

0
AlertDialog.Builder builderSingle = new AlertDialog.Builder(YourActivity.this); 

     List<Requests> requester = new ArrayList<>(); 
     final NameAdapter AlertDialogueAdapter = new NameAdapter(this, R.layout.your_custom_layout, requester); 

     AlertDialogueBuilder.add(new Requests("Hello","StackOverF")) 
     builderSingle.setIcon(R.drawable.avatar); 
     builderSingle.setTitle("Select Message by,"); 
     builderSingle.setNegativeButton("cancel", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       dialog.dismiss(); 
       finish(); 
      } 
     }); 
     builderSingle.setAdapter(AlertDialogueAdapter, new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       Requests req = AlertDialogueAdapter.getItem(which); 
       AlertDialog.Builder builderInner = new AlertDialog.Builder(ViewSpecialMessage.this); 
       builderInner.setMessage(req.getKey()); 
       builderInner.setTitle(req.getName()); 
       builderInner.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog,int which) { 
         dialog.dismiss(); 
        } 
       }); 
       builderInner.show(); 
      } 
     }); 
     builderSingle.show(); 

public class Requests{ 
    private String name; 
    private String key; 
    public Requests(){ 

    } 
    public Requests(String name, String key){ 
     this.name = name; 
     this.key = key; 
    } 

    public String getName() { 
     return name; 
    } 

    public String getKey() { 
     return key; 
    } 
} 
public class NameAdapter extends ArrayAdapter<Requests>{ 

    public NameAdapter(Context context, int resource, List<Requests> objects) { 
     super(context, resource, objects); 
    } 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     if (convertView == null) { 
      convertView = ((Activity) getContext()).getLayoutInflater().inflate(R.layout.name_adapter_layout, parent, false); 
     } 
     final Requests message = getItem(position); 
     TextView NameOfRequester = (TextView) convertView.findViewById(R.id.RequesterName); 
     ImageView ImgOfRequester = (ImageView) convertView.findViewById(R.id.RequesterImage); 
     NameOfRequester.setText(message.getName()); 
     return convertView; 
    } 
} 
関連する問題