我正在使用Android Studio标准模板“Navigation Drawer Activity”,其中包含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>
答案 0 :(得分:1)
不需要LayoutInflater。只需使用:
TextView textView = (TextView) findViewById(R.id.txt_head);
texView.setText("Hello");
希望这有帮助。
答案 1 :(得分:0)
您只需要以正常方式访问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。最后,可以直接从主活动访问所有内容,因为布局包含在主布局中。
希望它有所帮助!