我为我的应用创建了六个动态 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
。
答案 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) {
//
}