更改另一个布局的textview

时间:2018-01-06 15:52:04

标签: java android android-layout

我有一个“HomeActivity.class”类及其布局“activity_home”。我需要在另一个布局(“layout_profile”)中更改TextView(“TV8”)的文本。我试着用:

setContentView(R.layout.activity_home); ConstraintLayout profile=(ConstraintLayout)findViewById(R.id.layout_profile); TextView TV8 = (TextView) findViewById(R.id.TV8); TV8.setText("MY TEXT IN TV8");

但是当我尝试在第4行设置文字时我的应用程序会崩溃。 也许问题可能是膨胀的布局:在activty_home布局中我有一个框架布局,膨胀layout_profile在哪里是我的textview TV8:

activity_home activity_home xml ⬇️

layout_profile: layout_profile xml⬇️ Debug application

我如何在一个布局(layout_profile)中更改一个TEXTV视图(TV8)的文本来自一个类(activity_home)还有另一个布局(activty_home)??

3 个答案:

答案 0 :(得分:0)

我认为第3行存在问题。 试试这个:

setContentView(R.layout.activity_home);
ConstraintLayout profile=(ConstraintLayout)findViewById(R.id.layout_profile);
TextView TV8 = (TextView) profile.findViewById(R.id.TV8);
TV8.setText("MY TEXT IN TV8");

答案 1 :(得分:0)

您正在活动中加载activity_home.xml并尝试访问不在activty_home.xml中的视图TV8。

R.id.TV8是layout_profile的一部分,不属于activity_home.xml。

您可以访问当前在屏幕中加载的布局中的那些视图。

答案 2 :(得分:0)

您的活动正在加载activity_main布局,以便您可以访问布局中显示的视图。

您正尝试访问layout_profile中未加载且不可见的视图。在加载之前,您无法访问该视图。 如果视图不可见,则无法更改该视图的文本。 您可以将值存储在flag中,并可在加载text时用于更改layout_profile