Изменение TextView при content_main.xml в MainActivity.java

#java #android #xml

#java #Android #xml

Вопрос:

Я использую стандартный шаблон Android Studio «Активность навигационного ящика», который содержит content_main.xml планировка.

На этом макете находится мой TextView, в котором я хочу изменить текст из моего MainActivity.java .

Я пробовал следовать, но ничего не изменилось:

 LayoutInflater inflater = (LayoutInflater)this.getSystemService (Context.LAYOUT_INFLATER_SERVICE);
            View view = inflater.inflate(R.layout.content_main, null);
            TextView txt = (TextView)view.findViewById(R.id.txt_head);
            txt.setText("sdfsdf");
  

content_main.xml:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@ id/relativelayout_for_fragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.example.w4ter.ledcontroldesign.MainActivity"
    tools:showIn="@layout/app_bar_main"
    android:orientation="vertical"
    android:paddingTop="10dp">

    <TextView
        android:text="Presets"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAppearance="@style/TextAppearance.AppCompat.Headline"
        android:id="@ id/txt_head" />

    <View
        android:layout_width="fill_parent"
        android:layout_height="1dip"
        android:background="#61000000" />
</LinearLayout>
  

Ответ №1:

нет необходимости в LayoutInflater. Просто используйте:

 TextView textView = (TextView) findViewById(R.id.txt_head);
texView.setText("Hello");
  

Надеюсь, это поможет.

Комментарии:

1. Вау, я был так слеп О.О. Спасибо!

2. Не беспокойтесь .. 🙂

Ответ №2:

Вам просто нужно получить доступ к компоненту TextView обычным способом. С помощью этого шаблона content_main.xml включен в основной макет, поэтому вы могли бы сделать следующее в своей основной деятельности (возможно, внутри метода onCreate или где угодно, где вам нужно):

 public class MainActivity extends AppCompatActivity
    implements NavigationView.OnNavigationItemSelectedListener {

    //...

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView txt = (TextView)view.findViewById(R.id.txt_head);
        txt.setText("sdfsdf");
    }

    //...
}
  

Предполагая, что у вас есть app_bar_main.xml внутри основного макета, который содержит content_main.xml . В конце концов, все доступно непосредственно из основного действия, поскольку макеты включены в основной макет.

Надеюсь, это поможет!

Комментарии:

1. Спасибо, я был так слеп … !