我有一个包含多个句子的字符串数组,如
嗨 * ,我想谢谢你等等......
嘿 * ,别忘了给我打电话......
依旧......
我有一个生成随机短语的按钮(我没关系)
我想要做的是当用户点击按钮时,它应该用人的实际名称替换 * 。
如何更改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);
}
}
答案 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);