嗨,我是Android的新开发者,我是一名培训师,我正在尝试创建一个警报框。
在我的项目中,我已经放置了两个编辑文本框,如果其中任何一个是空的,我想弹出一个警告框,如果两个框都填满,它将移动到一个新页面。
以下是我的编码
{ b = (Button)findViewById(R.id.widget30);
et1 = (EditText)findViewById(R.id.et1);
et2 = (EditText)findViewById(R.id.et2);
b.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
if(et1.getText().toString().length() == 0 )
{
et.setVisibility(View.VISIBLE);
alertbox();
}
else if (et2.getText().toString().length() == 0)
{
et.setVisibility(View.VISIBLE);
alertbox();
}
else
{
main.this.finish();
Intent myIntent = new Intent(v.getContext(), T.class);
startActivityForResult(myIntent, 0);
}
}
});
}
public void alertbox()
{
et = new TextView(this);
Builder alert =new AlertDialog.Builder(main.this);
alert.setTitle("Alert");
alert.setMessage("Required all fields");
alert.setView(et);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int whichButton)
{
dialog.cancel();
}
});
AlertDialog alert1 = alert.create();
alert1.show();
}
}
它正在转移到新页面但警报框未打开,以下是logcat中的错误
java.lang.NullPointerException
在我的编码的以下几行
{
if(et1.getText().toString().length() == 0 )
{
et.setVisibility(View.VISIBLE);
alertbox();
}
else if (et2.getText().toString().length() == 0)
{
et.setVisibility(View.VISIBLE);
alertbox();
}
}
}
请帮我辨别我做了什么错误
答案 0 :(得分:1)
可能在这一行
et.setVisibility(View.VISIBLE);
et
是null
对象,因为它不存在。只有在调用alertbox()
答案 1 :(得分:0)
您应该考虑查看文档:{{3}}
Android SDK通过showDialog()和dismissDialog()方法为您处理对话框。您需要添加onCreateDialog方法并在此处添加创建代码。
Android也会在创建对话框后重复使用,而在您的代码中,您每次都会创建一个新对话框。
这是您可以做的基本知识,还有更多选择。
答案 2 :(得分:0)
b.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
if(et1.getText().toString().length() == 0 )
{
alertbox();
}
else if (et2.getText().toString().length() == 0)
{
alertbox();
}
else
{
Intent myIntent = new Intent(main.this, T.class);
startActivity(myIntent);
}
}
});`