以编程方式在android Edittext中获取提示文本值

时间:2017-01-29 15:28:40

标签: java android

我必须动态更改Typeface EditText,并在字体更改时处理提示文本。我只是这样做:

<android.support.design.widget.TextInputLayout
    android:id="@+id/input_layout_textBox"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <EditText
        android:id="@+id/textBox"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/hint_date" />
</android.support.design.widget.TextInputLayout>

我的代码片段如下:

EditText textBox = (EditText) findViewById(R.id.textBox);
Typeface tf = Typeface.createFromAsset(this, "myfont.ttf");
textBox.setTypeface(tf);
String hintText = textBox.getHint().toString(); //Got NullPointerException here....
String newText = processText(hintText); //This will process the hint text;
textBox.setHint(newText);

当我退出程序时,我遇到以下异常:

java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.String java.lang.CharSequence.toString()' on a null object reference

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

我们首先需要查看your_layout.xml来确定,但您可能正在使用设计支持库。

如果是这样,您可以获得如下提示:

((TextInputLayout)textBox.getParent()).getHint();

注意

已经回答here。 (虽然我们需要确保您使用设计支持lin将您的问题标记为重复)