Java 在android中创建alertbox时出错
嗨,我是android的新开发人员,我是一名培训师,我正在尝试创建一个提醒框 在我的项目中,我放置了两个编辑文本框,如果其中任何一个是空的,我想弹出一个警告框,如果两个框都填满了,它将移到一个新页面 下面是我的代码Java 在android中创建alertbox时出错,java,android,android-alertdialog,Java,Android,Android Alertdialog,嗨,我是android的新开发人员,我是一名培训师,我正在尝试创建一个提醒框 在我的项目中,我放置了两个编辑文本框,如果其中任何一个是空的,我想弹出一个警告框,如果两个框都填满了,它将移到一个新页面 下面是我的代码 { b = (Button)findViewById(R.id.widget30); et1 = (EditText)findViewById(R.id.et1); et2 = (EditText)findViewById(R.id.et2); b.se
{ 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();
}
}
{
if(et1.getText().toString().length() == 0 )
{
et.setVisibility(View.VISIBLE);
alertbox();
}
else if (et2.getText().toString().length() == 0)
{
et.setVisibility(View.VISIBLE);
alertbox();
}
}
}
它正在移到新页面,但警报框未打开,以下是logcat中的错误
java.lang.NullPointerException
在下面的代码行中
{ 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();
}
}
{
if(et1.getText().toString().length() == 0 )
{
et.setVisibility(View.VISIBLE);
alertbox();
}
else if (et2.getText().toString().length() == 0)
{
et.setVisibility(View.VISIBLE);
alertbox();
}
}
}
请帮我确定我在这条线上可能犯了什么错误
et.setVisibility(View.VISIBLE);
et
是一个null
对象,因为它不存在。只有在调用AltReBox() 之后,才能创建它。您应该考虑查看文档:
Android SDK通过showDialog()和dismissDialog()方法为您处理对话框。您需要添加onCreateDialog方法,并在此处添加创建代码
Android也会在对话框创建后重用它,而在您的代码中,您每次都会创建一个新的对话框
这是你能做的最基本的事情,还有更多的选择
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);
}
}
});`