#java #android #xml
#java #Android #xml
Вопрос:
У меня есть XML-файл с текстовым представлением, и я хочу изменить его серьезность из основного действия.
Я использовал этот код в основном действии:
// I just coppied the related codes
TextView tvValue;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvValue = findViewById(R.id.tv_value);
// the tv_value id is from the (word_item.xml) file
}
private void OnClickFunc(View view) {
tvValue.setGravity(Gravity.RIGHT);
}
и проблема в том, что я получаю ошибку NullPointerException при нулевой ссылке на объект.
Я знаю, что я должен каким-то образом связать XML-файл с основным действием.
word_item.xml файл:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp">
<TextView
android:id="@ id/tv_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Word" />
</LinearLayout>
Спасибо, и я ценю вашу помощь.
Комментарии:
1. опубликуйте свой метод создания, в котором вы устанавливаете представление содержимого ie.
setContentView(R.layout.activity_main);
2. Я только что отредактировал вопрос, пожалуйста, проверьте еще раз. Спасибо.
3. покажите свой
activity_main.xml
файл
Ответ №1:
если вы не включили word_item.xml
в свой activity_main.xml
, ошибка очевидна
итак, вот как вы можете включить другой файл в любой XML-файл в Android
<include layout="@layout/word_item.xml" />
тогда все будет работать так, как вы ожидаете
Ответ №2:
Попробуйте сначала раздуть другой макет следующим образом инициализируйте представление
LayoutInflater inflater = LayoutInflater.from(MainActivity.this); final View v = inflater.inflate(R.layout.word_item, null);
Затем
Textview tvValue = findViewById(R.id.tv_value); private void OnClickFunc() { tvValue.setGravity(Gravity.RIGHT);
Ответ №3:
Где вы инициализировали переменную TextView?? Переменная должна быть инициализирована после setContentView в методе onCreate в Activity.