[英]How to replace a string if not contained between '<' and '>'
[英]How to display username in a String contained in an array
我不知道如何在第二个活动中显示上一个活动的用户名。
我尝试了很多方法,但是没有一个方法可以让我在字符串中显示用户名
这是MainActivity:
private EditText nameField;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nameField = findViewById(R.id.nameEditText);
Button startButton = findViewById(R.id.startButton);
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = nameField.getText().toString();
getusername(name);
}
});
}
private void getusername(String name) {
Intent intent = new Intent(this, OneShot.class);
Resources resources = getResources();
String key = resources.getString(R.string.key_name);
intent.putExtra(key, name);
startActivity(intent);
}
这是SecondActivity:
public static final String TAG = OneShot.class.getSimpleName();
private String name;
private int nextSentenceId = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_one_shot);
Intent intent = getIntent();
name = intent.getStringExtra(getString(R.string.key_name));
if (name == null || name.isEmpty()) {
name = "Player";
}
Log.d(TAG, name);
final int[] sentences = new int[]{R.string.page0, R.string.page2, R.string.page3, R.string.page4, R.string.page5 };
Button next= findViewById(R.id.next);
final TextView displayText= findViewById(R.id.displayText);
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final int limit = 5;
if(nextSentenceId < sentences.length){
displayText.setText(sentences[nextSentenceId]);
++nextSentenceId;
}
}
});
}
这些是int []中的字符串:
<string name="page0"> Hello %1$s </string>
<string name="page2"> Welcome into this application </string>
<string name="page3"> How are you ? </string>
<string name="page4"> How is the weather </string>
<string name="page5"> Is %1$s you\'re real name ? </string>
为什么没有在字符串句子中传递用户名,我该如何解决? 提前致谢。
更改:
数组中的字符串,以使其正确格式:
<string name="page0">Hello %s</string> <string name="page5">Is %s your real name?</string>
调用以根据上面的格式在TextView中设置文本:
displayText.setText(String.format(Locale.getDefault(), getString(sencences[nextSentenceId]), name));
您在int
数组中拥有的不是String
值,而是用于链接到所述String
资源的id。 您可以使用getResources().getString(R.string.yourstring)
获得与ID关联的String
资源(值getResources().getString(R.string.yourstring)
。
//So, instead of
//displayText.setText(sentences[nextSentenceId]);
//use
displayText.setText(getResources().getString(sentences[nextSentenceId]));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.