Android,我想在textview中更改单词

时间:2014-02-04 21:33:03

标签: android textview arrays

我有一个包含多个句子的字符串数组,如

* ,我想谢谢你等等......

* ,别忘了给我打电话......

依旧......

我有一个生成随机短语的按钮(我没关系)

我想要做的是当用户点击按钮时,它应该用人的实际名称替换 *

如何更改string.xml中字符串数组列表中的特定字符?

谢谢

这是我的实际代码,我坚持基本上改变*的名称:

Button generate;
EditText friendName;
TextView cannedPhrase;
String[] randomPhrase;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    initializeWidgets();
}

private void initializeWidgets() {
    // Initializes, button, EditText and TextView

    generate = (Button)findViewById(R.id.buttonGenerate);
    friendName = (EditText)findViewById(R.id.editTextFriendsName);
    cannedPhrase = (TextView)findViewById(R.id.textViewRandomPhrase);
    randomPhrase = getResources().getStringArray(R.array.canned_phrases);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

public void onGenerate(View V){

    String randomStr = randomPhrase[new Random().nextInt(randomPhrase.length)];
    String friend = friendName.getText().toString();
    cannedPhrase.setText(randomStr);

}

}

2 个答案:

答案 0 :(得分:3)

strings.xml使用字符串占位符*替换%s

<string-array name="canned_phrases">
   <item>"Hi %s, I wanted to thank you blah blah...."</item>
   <item>"Hey %s, don't forget to call me...."</item>
</string-array>

在您的代码中,使用String#format(String, Object...)

cannedPhrase.setText(String.format(randomStr, friend))

答案 1 :(得分:0)

如果您只是想用您的名字替换一个设置字符,那么您可以在onGenerate方法中调用String的替换方法:

String randomStr = ...
String friend = ...
randomStr = randomStr.replace("*", friend);
cannedPhrase.setText(randomStr);