0
我在为Android编程应用newbee。对于我的应用程序,我需要在应用程序启动后输入密码 .....迄今为止这么好。修改的EditText颜色AlertDialog将无法正常工作
但在喊我alertdialog输入的文本我txtPIN不能被看到的而言,它总会有颜色作为背景相同。我使用API Lvl 17作为目标API。
如果任何人都可以给我一个提示,我会很高兴。
if (dbManager.getToggle()==true){
final EditText txtPIN = new EditText(this);
txtPIN.setTextColor(color.black);
txtPIN.setInputType(InputType.TYPE_CLASS_NUMBER);
AlertDialog.Builder alert = new AlertDialog.Builder(this,AlertDialog.THEME_HOLO_LIGHT);
alert.setTitle("PIN Security");
alert.setMessage("Please enter PIN");
alert.setView(txtPIN);
alert.setIcon(R.drawable.ic_launcher);
alert.setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//comparison of PINs
if (txtPIN.getText().toString().equals(dbManager.getPIN()){
Toast toast = Toast.makeText(getApplicationContext(), R.string.allowed, Toast.LENGTH_SHORT);
toast.setGravity(Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL, 0, 150);
toast.show();
} else {
Toast toast = Toast.makeText(getApplicationContext(), getResources().getString(R.string.denied) + "\n" + txtPIN.getText().toString() + "\n" + dbManager.getPIN(), Toast.LENGTH_SHORT);
toast.setGravity(Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL, 0, 150);
toast.show();
finish();
System.exit(0);
}
}
});
我觉得现在的问题是,'EditText'与创建应用程序'上下文'而不是'AlertDialog'。因此'EditText'不可能知道这个主题,因为它不能猜测它将被放置在哪里。尝试通过调用'AlertDialog对话框= alert.create(先创建一个'AlertDialog')',然后创建您的编辑文字'最后的EditText txtPIN =新的EditText(dialog.getContext());'。 – cgogolin 2015-11-27 14:19:41