我在一项活动中有EditText
,在另一项活动中有TextView
。我希望第二个活动中的TextView
根据我在第一个活动中输入EditText
的内容进行更新。 TextView
的所有字符串都来自string.xml
。
if (edittext.getText ().toString ().equals ("1")) {
Intent Newintent = new Intent (this,Second activity. Class);
Newintent.putExtras ("newstring",R.string.text1);
startActivity (Newintent);
}
答案 0 :(得分:1)
试试这段代码:
if (edittext.getText ().toString ().equals ("1")
{
Intent Newintent= new Intent (this,Second activity. Class);
Newintent.putExtras ("newstring",getString(R.string.text1));
startActivity (Newintent);
}
答案 1 :(得分:0)
那是对的。唯一剩下的就是在SecondActivity上获取字符串。
Bundle extras = getIntent().getExtras();
if(extras!=null){
String value = extras.getString("newstring");
}
答案 2 :(得分:0)
您可以直接在TextView中设置文本以在切换活动时创建公共静态方法,您可以调用方法在TextView中设置其他活动中的文本。
if (edittext.getText ().toString ().equals ("1") {
Intent Newintent = new Intent(this, Second activity.Class);
Newintent.putExtras("newstring", R.string.text1);
startActivity(Newintent);
MainActivity.setText(text);
}
例如,如果您在MainActivity中定义方法并且想要在main活动中设置文本而不是在MainActivity中创建公共静态方法,并在其他活动中将其称为此方法。
public static void setText(String text)
{
textView.setText(text);
}
此方法将定义TextView存在的位置。
答案 3 :(得分:0)
艾哈迈德的回答是对的,只是加上解释 问题:字符串与CharSequence
我理解的第一步是了解TextView#setText()接受CharSequence而Resources#getString()返回一个String,并且这两个类并不总是可以互换的。我们仍然能够传递String的原因是因为它实现了CharSequence。
我们需要使用的CharSequence的另一个实现是Spanned,它支持使用称为“spans”的东西来修改文本的可视化表示。跨度是一些微小的对象,其中包含有关如何绘制文本的信息,Android会在整个框架中大量使用它们。