当TextView在另一个布局中时,如何设置setText()(TextView)?

时间:2013-03-21 03:03:54

标签: android android-layout

我的应用有2种布局(主要布局)和(偏好(prefs)布局)。

当MainActivity加载时,我设置了setContentView(R.layout.main); - 主要布局

然后我需要在首选项布局中为TextView设置文本,但它永远不会被设置。

LayoutInflater factory = getLayoutInflater();
 View inflate = factory.inflate(R.layout.prefs, null);
    TextView eSerial = (TextView) inflate.findViewById(R.id.editTextSerial);
    mSerial = "Test"; 
    eSerial.setText(mSerial);

我进入首选项页面的方式是使用菜单,然后页面加载而不会更改TextView

我已搜索过,但尚未找到答案。

请帮忙。

谢谢。

2 个答案:

答案 0 :(得分:2)

简短回答:你不能这样做。

答案很长:

如果您自己启动首选项页面,则必须创建一个Intent来执行此操作。调用putExtra()将文本存储在该intent中。在PreferenceActivity中,调用getIntent()。getStringExtra()来获取文本,然后将其放入TextView中。

答案 1 :(得分:2)

当菜单启动您的prefs活动时,您可以使用值填充视图。 user1853479指出了一种方法,即将值添加到intent中。假设您要为将来的运行存储这些首选项,您还可以为该特定运行设置任何该首选项并将它们保存在本地存储中。另一种方法是创建一个单例来存储您的设置,在应用启动时加载它,根据需要修改和保存,并从您的任何活动中访问它。