【问题标题】:Android text input from XML来自 XML 的 Android 文本输入
【发布时间】:2025-12-09 20:25:01
【问题描述】:

我正在努力学习 android 中的 XML 布局是如何工作的。我怀疑以前有人问过我的问题,但我找不到答案。 我正在查看 android SDK 附带的 APIDemos 教程。其中有一个名为 AlertDialogSamples 的类。我正在使用自定义 DIAGLOG_TEXT_ENTRY 案例。我了解如何将视图添加到对话框以及如何更改标签和文本框。 我无法理解如何从框中获取用户输入文本并对其进行处理。在行中:

.setPositiveButton(R.string.alert_dialog_ok,
   new DialogInterface.OnClickListener() {
     public void onClick(DialogInterface dialog, int whichButton) {
         /* User clicked OK so do some stuff */
     }

如何获取用户名和密码字段的用户输入值并在用户单击确定的地方使用它们?它们应该是 EditText 对象,但我不熟悉如何访问这些字段,因为它们是使用 XML 形成的,而不是用 JAVA 编写的。如何访问 XML 生成的对象?

谢谢

【问题讨论】:

    标签: android android-layout


    【解决方案1】:

    您需要在布局 xml 中的 EditText 字段上设置 id:

    <EditText android:id="@+id/username"
        ... />
    <EditText android:id="@+id/password"
        ... />
    

    然后,您可以随时在您的活动中通过以下方式引用它们:

    EditText username = (EditText) findViewById(R.id.username);
    EditText password = (EditText) findViewById(R.id.password);
    

    您可以使用username.getText() 获取他们的文本,它返回CharSequence,可以像String 一样使用。

    【讨论】:

    • 感谢您的快速回复!我刚试过这个,但是当我尝试这个时我得到一个空指针异常。异常发生在 getText() 行上。 getText 返回一个 Editable 对象。我的代码如下: .setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { EditText text = (EditText) findViewById(R.id.password_edit); System. out.println(text.getText().toString()); /* 用户点击确定,所以做一些事情 */ }
    • 找不到您的视图。您确定您正在加载正确的布局吗?
    【解决方案2】:

    试试这个..

    String string=editText.getText().toString();

    if(!string.equals("")){

    Toast.makeText(getApplicationContext(),string,Toast.LENGTH_SHORT).show(); System.out.println(string);

    }

    【讨论】: