jcr*_*son 6 java validation alert android
我正在尝试向位于警报对话框中的编辑文本字段添加一些文本验证.它会提示用户输入名称.
我想添加一些验证,以便如果他们输入的内容为空或null,除了创建Toast说错误之外它不会做任何事情.
到目前为止,我有:
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Record New Track");
alert.setMessage("Please Name Your Track:");
// Set an EditText view to get user input
final EditText trackName = new EditText(this);
alert.setView(trackName);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String textString = trackName.getText().toString(); // Converts the value of getText to a string.
if (textString != null && textString.trim().length() ==0)
{
Context context = getApplicationContext();
CharSequence error = "Please enter a track name" + textString;
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context, error, duration);
toast.show();
}
else
{
SQLiteDatabase db = waypoints.getWritableDatabase();
ContentValues trackvalues = new ContentValues();
trackvalues.put(TRACK_NAME, textString);
trackvalues.put(TRACK_START_TIME,tracktimeidentifier );
insertid=db.insertOrThrow(TRACK_TABLE_NAME, null, trackvalues);
}
Run Code Online (Sandbox Code Playgroud)
但这只是关闭警报对话框,然后显示Toast.我希望警报对话框仍然在屏幕上.
谢谢
我认为您应该重新创建Dialog,因为DialogInterface作为参数给出的似乎onClick()并没有为您提供停止关闭 的选项Dialog。
我还有一些建议给你:
尝试使用Activity.onCreateDialog(),Activity.onPrepareDialog()当然Activity.showDialog()。它们使对话框的使用变得更加容易(至少对我来说),而且对话框的使用看起来更像菜单的使用。使用这些方法,您还可以更轻松地再次显示对话框。
我想给你一个提示。这不是您问题的答案,但在答案中这样做更具可读性。
AlertDialog.Builder()您可以简单地执行以下操作,而不是保存对对象的引用:
new AlertDialog.Builder(this)
.setTitle("Record New Track")
.setMessage("Please Name Your Track:")
//and some more method calls
.create();
//or .show();
Run Code Online (Sandbox Code Playgroud)
为您节省参考和大量打字;)。(几乎?)所有方法都AlertDialog.Builder返回一个AlertDialog.Builder对象,您可以直接调用该对象的方法。
s也是如此Toast:
Toast.makeText(this, "Please enter...", Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20095 次 |
| 最近记录: |