2011-08-03 68 views
0

哪种方法我必须重写,该xml layout使用读取与,样品链接resources布局读取资源的位置?

如果我将layout内有TextView

  <TextView android:layout_width="wrap_content" 
       android:layout_height="wrap_content" android:id="@+id/textview1" 
       android:text="@String/text_test1" 
       </TextView> 

,并在我的ActivityonCreate,我们总是用setContentViewsetContentView(R.layout.sample);

-

我的问题是:当我们使用xml文件作为活动布局时,布局如何读取像android:text="@String/text_test1这样的资源,所以我可以例如覆盖它,所以当布局请求任何String我可以将其他文本绑定到它?

-

注意:不是找正规的方式,通过寻找XML视图,然后更改它的属性。 正在寻找abstract的方式来更改resources所要求的每个String xml布局。

+1

为什么你需要重写这个功能?只是使用 ((TextView)findViewById(R.id.textview1))。setText(“blah”) – herbert

+0

@herbert对不起,我不需要这种方式,我正在制作'Abstract Activity',所以每个'Resource'请求,我必须处理所有“字符串”中的内容。 –

回答

0

要改变文本,你只需要在你的活动中使用它。

((TextView)findViewById(R.id.textview1)).setText("New Text"); 

要覆盖整个TextView,您需要创建一个自定义textview类,它可以扩展TextView并在那里执行您的东西。

+0

对不起,我不需要这种方式,我正在做'抽象活动',所以每个'资源'请求,我必须处理所有'字符串'中的东西。 –

0

,如果你想通过代码使用更改文本这样的:

TextView textView = (TextView) findViewById(R.id.textview1); 

textView.setText(getResources()的getString(R.string.yourtextishere));

+0

对不起,我不需要这种方式,我正在做'抽象活动',所以每一个'资源'请求,我必须处理所有'字符串'中的东西。 –

0

我不确定你的意思是什么。 无论如何,在res/文件夹中存在您的应用程序在运行时需要的所有资源。字符串是在value/string.xml文件中定义的资源。

在编译时,ADT会生成一个java静态类,它为您的任何资源(字符串)绑定一个ID。所以当你设置你的活动的布局时,字符串的值将被该类中的特定ID所取得。

如果你彪改变TextView的文本你只需要得到与rappresenting TextView的在运行时的对象:

TextView textView = (TextView) findViewById(R.id.textview1); 

和使用他的方法来设置文本:

textView.setText("New Text"); 

希望这会有所帮助。