【问题标题】:how to populate the alertdialog from the values queried from database?如何根据从数据库中查询的值填充警报对话框?
【发布时间】:2011-09-25 01:12:16
【问题描述】:

现在我只能在按下对话框的 OK 按钮时看到获取的值。但是我想在警报对话框出现时看到它。我知道我已将显示代码放入 .setPositiveButton("OK", 但即使我尝试在此之前放入它,它也不起作用。我有些想法我需要使用这个 setview(addView) 但不要知道怎么做。请帮帮我。

enter code here
private void populateFields() {
    LayoutInflater inflater=LayoutInflater.from(this);
    final View addView=inflater.inflate(R.layout.add_country, null);

    new AlertDialog.Builder(this)
    .setTitle("Edit country/year")
    .setView(addView)
    .setPositiveButton("OK", 
    new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog,int whichButton) {
    Cursor c = 
         getContentResolver().query                                                                   (CONTENT_URI.buildUpon                                             ().appendPath(String.valueOf(mRowId)).build(), null, null, null, null);
    /* Read alert input */
    EditText editCountry =(EditText)addView.findViewById(R.id.editCountry);
    EditText editYear =(EditText)addView.findViewById(R.id.editYear);
    //System.out.println(c.getString(c.getColumnIndex("country")));
    editCountry.setText(c.getString(c.getColumnIndex("country")));
    editYear.setText(c.getString(c.getColumnIndex("year")));
                }
                })
    .setNegativeButton("Cancel",
        new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog,int whichButton) {
      // ignore, just dismiss
    }
})
    .show();
}

【问题讨论】:

    标签: android android-inflate android-view android-alertdialog


    【解决方案1】:

    尝试在放大视图后立即放置代码。像这样的东西:

    private void populateFields() {
    LayoutInflater inflater=LayoutInflater.from(this);
    final View addView=inflater.inflate(R.layout.add_country, null);
    
    Cursor c = getContentResolver().query(CONTENT_URI.buildUpon().appendPath(String.valueOf(mRowId)).build(), null, null, null, null);
    /* Read alert input */
    EditText editCountry =(EditText)addView.findViewById(R.id.editCountry);
    EditText editYear =(EditText)addView.findViewById(R.id.editYear);
    
    editCountry.setText(c.getString(c.getColumnIndex("country")));
    editYear.setText(c.getString(c.getColumnIndex("year")));
    
    new AlertDialog.Builder(this)
    .setTitle("Edit country/year")
    .setView(addView)
    .setPositiveButton("OK",null)
    .setNegativeButton("Cancel",null)
    .show();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      • 2011-03-11
      • 1970-01-01
      相关资源
      最近更新 更多