如何动态获取字符串

时间:2014-01-04 05:34:03

标签: android string textview

我有一些字符串,我想根据一个数字得到每个字符串。例如。我有字符串:

<string name="ln1">Line1</string>
<string name="ln2">Line2</string>
<string name="ln3">Line3</string>

这是我的活动:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    counter = 2;
    box = (TextView) findViewById(R.id.textView1);
    box.setText(R.string.ln1);
    box.setOnClickListener(this);}

@Override
public void onClick(View arg0) {
    // TODO Auto-generated method stub  
    box.setText(R.string.ln+ counter);
    counter = counter + 1;
}

现在,当我单击TextView时,文本显示为“R.string.ln2”。当我点击TextView时,如何设置TextView以显示下一个字符串(即:ln2)?

3 个答案:

答案 0 :(得分:1)

我认为如果你想让一个字符串集合循环,你最好在你的资源文件中使用字符串数组:

<string-array name="somename">
    <item>Line1</item>
    <item>Line2</item>
    <item>Line3</item>
</string-array>

然后在代码中访问它:

String[] lines;
int counter = 0;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    lines = getResources().getStringArray(R.string.somename);
    box = (TextView) findViewById(R.id.textView1);
    box.setText(lines[0]);
    box.setOnClickListener(this);}

@Override
public void onClick(View arg0) {
    counter = counter + 1;
    box.setText(lines[counter]);
}

答案 1 :(得分:0)

您可以使用:<string>

引用R.string.string_name代码

示例:

String lineOne = getResources().getString(R.string.ln1);

或者您可以直接将字符串设置为TextView或任何其他小部件:

setText(R.string.ln2);

答案 2 :(得分:0)

你可以使用字符串数组

 <string name="ln1">Line1</string>
 <string name="ln2">Line2</string>
 <string name="ln3">Line3</string>

Java文件

String[] value;
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 value[0] = R.string.ln1;
 value[1] = R.string.ln2;
 value[2] = R.string.ln3;
 counter = 0;
 box = (TextView) findViewById(R.id.textView1);
 box.setText(R.string.ln1);
 box.setOnClickListener(this);}

 @Override
  public void onClick(View arg0) {
  // TODO Auto-generated method stub  
  box.setText(value[counter]);
  counter = counter + 1;
  }