如何从Android中的动态Checkbox创建Alert Box?

时间:2014-03-07 19:03:18

标签: android checkbox alertdialog android-alertdialog

我为我的应用创建了六个动态 Checkbox ,如果选中该复选框,我想弹出 AlertBox 但是我我从我的代码中找到任何结果。我对复选框确实很有价值,但没有 AlertBox

Java代码:

package com.example.mycheckbox;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.util.SparseBooleanArray;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.ListView;

public class MainActivity extends Activity 
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        LinearLayout ll = (LinearLayout) findViewById(R.id.ii);
        CheckBox[] cb = new CheckBox[6];

        for (int i = 0; i < 6; i++) 
        {
            cb[i] = new CheckBox(this);
            cb[i].setText("Dynamic Checkbox " + i);
            cb[i].setId(i + 6);

            if (cb[i].isChecked())
            {
                AlertDialog.Builder myalert = new AlertDialog.Builder(this);

                myalert.setTitle("Demo Title - "+i).setMessage(" Message from - "+i).setNeutralButton("Close", null).show();
            }

            ll.addView(cb[i]);                       
        }
    }
}

如果选中,我想为每个AlertDialog弹出CheckBox

3 个答案:

答案 0 :(得分:2)

AlertDialog未显示,因为您未从AlertDialog创建AlertDialog.Builder对象。如下创建ab AlertDialog对象,然后使用该对象调用show()方法以显示Dialog

另一方面,您未将Listener分配给CheckBox。现在将侦听器设置为它们并显示如下对话框...

cb[i].setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

   @Override
   public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

        AlertDialog.Builder myalert = new AlertDialog.Builder(this);

        myalert.setTitle("Demo Title - "+i);
        myalert.setMessage(" Message from - "+i);
        myalert.setNeutralButton("Close", null);

        AlertDialog dialog = myalert.create();
        dialog.show();
   }
}

答案 1 :(得分:0)

这可能会对你有帮助。Checkbox Listener。在创建复选框时添加它们。或者参考您正在设置的ID创建的复选框,然后设置一个监听器。

答案 2 :(得分:0)

默认情况下,它们不会被选中,因此不会显示弹出窗口,如果有人检查它,你应该添加一个监听器。

cb[i].setOnCheckedChangeListener(new OnCheckedChangeListener() {

      @Override
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
          // alert dialog 

      }
});

或者您可以实现OnCheckedChangeListener并为所有复选框使用一个侦听器。

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    //

}