在textview中设置其他活动的文本

时间:2017-07-10 11:14:44

标签: android

我在一项活动中有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);
}

4 个答案:

答案 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会在整个框架中大量使用它们。

  

follow this link further details