安卓提示框代码写了但是没显示 AlertDialog.Builder builder android中AlertDialog.Builder

Android \u4f7f\u7528AlertDialog.builder\u5f39\u51fa\u5bf9\u8bdd\u6846\u3002

\u5728\u70b9\u51fb\u4e8b\u4ef6\u91cc\u9762\u521b\u5efaDialog\u5c31\u53ef\u4ee5\u4e86\u3002
\u8fd8\u6709\uff0cbuilder\u5e94\u8be5\u5148\u6267\u884ccreate()\u65b9\u6cd5

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, final int position, long id) {
View view1 = LayoutInflater.from(MainActivity.this).inflate(R.layout.alert_selection, null);
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setView(view1);
builder.setTitle("**");
builder.create().show();
}
});

AlertDialog.Builder\u7684API\u53ef\u4ee5\u67e5\u770b\u5b98\u7f51\u6587\u6863\uff0c\u5177\u4f53\u5b9e\u73b0\u4ee3\u7801\u5982\u4e0b\uff1a
1.\u521b\u5efaAlertDialog.Builder\u5e76\u8bbe\u7f6e\u6570\u636e\u6e90
AlertDialog.Builder builder = new Builder(context);
builder.setTitle("\u590d\u9009\u6846");//\u8bbe\u7f6e\u5bf9\u8bdd\u6846\u6807\u9898
builder.setIcon(android.R.drawable.ic_menu_more);//\u8bbe\u7f6e\u5bf9\u8bdd\u6846\u6807\u9898\u524d\u7684\u56fe\u6807

final String[] data = getResources().getStringArray(R.array.radio);//\u901a\u8fc7resources \u5f97\u5230strings.xml\u4e2d\u7684\u5b57\u7b26\u4e32\u6570\u7ec4
boolean[] state = new boolean[data.length];
for(int i=0; i<data.length; i++){
state[i] = sboolean.get(i);//\u5c06\u72b6\u6001\u96c6\u5408\u4e2d\u7684\u6570\u636e\u53d6\u51fa\u6765,\u4e0b\u6b21\u9009\u62e9\u65f6\u5019\u4f1a\u9ed8\u8ba4\u9009\u4e2d
}

2.\u6ce8\u518c\u70b9\u51fb\u4e8b\u4ef6,\u5e76\u8bb0\u5f55\u590d\u9009\u7684\u6570\u636e
/*
* \u7b2c\u4e00\u4e2a\u53c2\u6570\u662f,\u6570\u636e\u539f,\u53ef\u4ee5\u662f\u6570\u7ec4,\u4e5f\u53ef\u4ee5\u4f20strings.xml\u90a3\u7684\u5b57\u7b26\u4e32ID,\u4f46\u662f\u5efa\u8bae\u7528\u6570\u7ec4,\u56e0\u4e3a\u591a\u9009\u76d1\u542c\u8fd4\u56de\u7684\u662f\u6570\u7ec4\u7684\u6807\u4e0b
* \u7b2c\u4e8c\u4e2a\u53c2\u6570\u662f,\u9ed8\u8ba4\u7684\u9009\u4e2d\u4f4d\u7f6e,\u662f\u4e2aboolean\u6570\u7ec4,\u5bf9\u5e94item\u7684\u4f4d\u7f6e
* \u7b2c\u4e09\u4e2a\u662f\u5217\u8868\u70b9\u51fb\u76d1\u542c\u4e8b\u4ef6
*/
builder.setMultiChoiceItems(R.array.radio, state, new DialogInterface.OnMultiChoiceClickListener() {//\u6ce8\u518c\u5355\u9009\u62e9\u76d1\u542c\u4e8b\u4ef6
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if(isChecked){
Toast.makeText(context,"\u4f60\u9009\u62e9\u4e86: " + data[which], Toast.LENGTH_SHORT).show();
checkBoxData.add(data[which]);//\u9009\u62e9\u7684\u65f6\u5019\u8981\u4fdd\u5b58\u8d77\u6765
}else{
Toast.makeText(context,"\u4f60\u53d6\u6d88\u4e86: " + data[which], Toast.LENGTH_SHORT).show();
checkBoxData.remove(data[which]);//\u53d6\u6d88\u9009\u4e2d\u7684\u65f6\u5019\u8981\u5220\u9664\u6389
}
sboolean.put(which, isChecked);//\u6bcf\u6b21\u9009\u62e9\u90fd\u8981\u8bb0\u5f55\u4e0b\u8fd9\u4e2aitem\u7684\u72b6\u6001
}
});

3.\u589e\u52a0\u786e\u5b9a\u548c\u53d6\u6d88\u6309\u952e
builder.setPositiveButton("\u786e\u8ba4", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "\u4f60\u70b9\u4e86\u786e\u5b9a,\u9009\u62e9\u7684\u662f: " + checkBoxData.toString(), Toast.LENGTH_SHORT).show();
}
});

4.\u8bbe\u7f6edialog\u7684\u76f8\u5173\u53c2\u6570,\u5e76\u5f39\u51fa
builder.setNegativeButton("\u53d6\u6d88", null);//\u53d6\u6d88\u4e0d\u505a\u4efb\u4f55\u5904\u7406
builder.setCancelable(true);//\u8bbe\u7f6e\u6309\u94ae\u662f\u5426\u53ef\u4ee5\u6309\u8fd4\u56de\u952e\u53d6\u6d88,false\u5219\u4e0d\u53ef\u4ee5\u53d6\u6d88
AlertDialog dialog = builder.create();//\u521b\u5efa\u5bf9\u8bdd\u6846
dialog.setCanceledOnTouchOutside(true);//\u8bbe\u7f6e\u5f39\u51fa\u6846\u5931\u53bb\u7126\u70b9\u662f\u5426\u9690\u85cf,\u5373\u70b9\u51fb\u5c4f\u853d\u5176\u5b83\u5730\u65b9\u662f\u5426\u9690\u85cf
dialog.show();

public class MyDialog extends Dialog {
private int FLAG_DISMISS = 1;
private boolean flag = true;

public MyDialog(Context context) {
super(context);
setTitle("自动消失对话框测试!");
}

@Override
public void show() {
super.show();
mThread.start();
}

@Override
public void dismiss() {
super.dismiss();
flag = false;
}

private Thread mThread = new Thread(){
@Override
public void run() {
super.run();
while(flag){
try {
Thread.sleep(2000);
Message msg = mHandler.obtainMessage();
msg.what = FLAG_DISMISS;
mHandler.sendMessage(msg);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};

private Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(msg.what == FLAG_DISMISS)
dismiss();
}

};

}

LZ 筒子,AlertDialog都被框死用来做警告用的,不好操作。想实现自己的对话框还是继承Dialog然后DIY更好,选择也多得多了。我这个自定义的Dialog就是显示了2s然后消失的,测试过没问题。实现起来也相当之简单,抛砖引玉,期待更好的方法。

扩展阅读:显示屏右边显示不完整 ... 电脑打开的窗口看不见 ... 手机提示框很久才消失 ... 小米手机提示框不消失 ... 能开机但进不了桌面笔记本 ... 图片变成一串代码怎么显示 ... 程序已运行但是没窗口 ... 代码写好了怎么运行 ... 显示屏显示不了全部界面 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网