android - android :text of EditText while the android:text is left undefined?的默认值是多少

标签 android layout user-interface android-edittext

我是 Android 开发的初学者。在我的项目中,我创建了一个 TableLayout ——我认为 GridLayout 可以提供更多帮助,但由于我不熟悉 GridLayout TableLayout 被采用 —— 使用一些 EditTexts 从用户那里获取值。该 Activity 实际上是一个可提交的表单。在每个 EditText 的左侧,有一个 TextView 定义相应 EditText 的预期内容,因此我不必也没有为 EditText 设置默认文本(通常用作提示)。此 Activity 中还有一个用于提交此表单的按钮。我选择了一些 EditText 作为 MUST_FILLED,所以在按钮的自定义监听器类中,我必须检查这些 MUST_FILLED 是否已被填充。按照我的直觉编码如下:

String s4 = machine_id.getText().toString().trim();
if(s4 == null || s4 == ""){
    Toast.makeText(v.getContext(), 
            "Please Input the machine ID", Toast.LENGTH_SHORT).show();
}

此处的 machine_id 是 EditText 的 android:id。此代码最终没有显示 toast。所以我认为 EditText 有一个默认的文本值,即使 android:text 不是手动定义的。然后我写了一个简单的项目来证实我的想法。这是 MainActivity.java

public class EditText_testActivity extends Activity implements View.OnClickListener{
/** Called when the activity is first created. */
private String text;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        EditText et = (EditText)findViewById(R.id.et01);
        text = et.getText().toString();

        Button btn = (Button)findViewById(R.id.btn01);
        btn.setOnClickListener(this);
    }

@Override
public void onClick(View v) {
    if(text != null)
        Toast.makeText(v.getContext(), text, Toast.LENGTH_SHORT).show();
    else
        Toast.makeText(v.getContext(), "null", Toast.LENGTH_SHORT).show();

}
}

和 main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/et01" />
    <Button 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:id="@+id/btn01"
        android:text="TouchMe"/>

</LinearLayout>

它确实证明了 EditText 具有默认文本值,因为 Toast.makeText(v.getContext(), text, Toast.LENGTH_SHORT).show(); 确实显示了 toast 。但是,它显示了一些看起来像空白但实际上并非如此的东西。

最后,我想知道 EditText 中 android:text 的默认值是多少。

提前致谢。

最佳答案

我相信默认值是一个空字符串。它永远不会为 null,因为如果是这种情况,您应该已经在这一行遇到了 NullPointerException:

String s4 = machine_id.getText().toString().trim();

查看您的代码,toast 没有出现的原因是因为您使用 (s4 == null || s4 == "") 作为您的 if 条件。 == 运算符不同于 .equals()。 尝试将条件更改为 "".equals(s4)

关于android - android :text of EditText while the android:text is left undefined?的默认值是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10900215/

相关文章:

android - 在滑出式菜单中滑动时淡化布局

android - 将 APK 上传到 Google Play 时出错

c++ - 清理 Qt 布局和添加其他小部件不起作用。幽灵小部件保留。 Qt 错误?

html - 基于Web技术堆栈构建JavaFX应用程序的UI

安卓 : save/open picture taken from camera intent

android - 即使使用未翻译的字符串,如何在 Android Studio 上签署 APK?

Java Swing : why must resize frame, 以便可以显示已添加的组件

Silverlight 拉伸(stretch)子元素以填充父容器?

java - 生成按住控制按钮的 KeyStroke

java - Eclipse IDE 设置仅类的方法在包资源管理器中可见