2012-02-09 86 views
3

我目前正在设计一个电子书阅读器应用程序作为我的项目,我在改变其他活动的文本textview时遇到问题。想要从其他活动更改TextView的文本吗?

内容我的项目,

活动1包含两个按钮,当点击按钮1“一些文本”应该会出现,当BUTTON2点击“其它文本” sholud出现在TextView1这是在Activity2

我的意思是文本应该只出现在TextView1中。没有其他的textview。好的。

请用简单的代码示例解决我的问题。

对不起,在这个问题上的任何错误,因为这是我第一次尝试真正在互联网上提出问题。

谢谢

+0

请清除掉,是你在activity2中的唯一textview和两个按钮在activity1.is中是正确的? – Hiral 2012-02-09 06:20:06

回答

0

你不能设置文本的另一项活动。使用intent将值传递给下一个活动,然后在从Activity2的onCreate()方法的意图回收后设置文本。

0

希望您了解Android中SharedPreferences的概念。使用它,你可以满足这个要求。它是一个全球性的地方,你可以从你的应用程序的任何地方设置它的价值,并在任何需要的地方使用同一个应用程序!

在活动1,

SharedPreference s_pref=PreferenceManager.getDefaultSharedPreferences(context); 
Editor edit=s_pref.edit(); 

button1.setOnClick....() 
{ 
    ... onClick() 
    { 
     edit.putString("textview_text","some text"); 
     edit.commit(); 
     /* you can start activity from here 

     Intent intent = new Intent(Activity1.this, Activity2.class); 
     startActivity(intent); 

     */ 
     //even if you don't start activity from here,text changed would be reflected in textView1 when activity2 is loded 
    } 
} 

button2.setOnClick....() 
{ 
    ... onClick() 
    { 
     edit.putString("textview_text","some other text"); 
     edit.commit(); 
     /* you can start activity from here 

     Intent intent = new Intent(Activity1.this, Activity2.class); 
     startActivity(intent); 

     */ 
     //even if you don't start activity from here,text changed would be reflected in textView1 when activity2 is loded 
    } 
} 
在活性2

... 
SharedPreference s_pref=PreferenceManager.getDefaultSharedPreferences(context); 
Editor edit=s_pref.edit(); 

String text=s_pref.getString("textview_text", "default text"); 
textView1.setText(text); 
... 
+0

非常感谢你...我现在能够解决这个问题。 – tiger2003 2012-02-09 06:47:47

0

嘿它,如果你想显示在textview这是另一个activity文本,然后用PutExtras帮助传递的价值观很简单并在getExtras使用Intent的帮助下获得该值以调用其他活动

见示例代码从一个活动值传递给另一个

Intent i = new Intent(Insert.this,Select_msg.class); 
    i.putExtra("name", name.getText().toString()); 
     i.putExtra("emailid", emailid.getText().toString()); 
      i.putExtra("contact", contactno.getText().toString()); 
      startActivity(i); 

Select_msg.class

Intent i = getIntent(); 
    name=i.getStringExtra("name"); 
    email = i.getStringExtra("emailid"); 
    cntct = i.getStringExtra("contact"); 

希望它会为工作无法释怀的只是设置这是在变量值textview

0

您可以使用类别MyText(),您可以在其中设置和重置文本或文本视图的任何其他属性。

说,如果你有一个方法setTextView(String text)而另一种方法说getText()和全局变量textVal 第一种方法将设置textVal = text即是发送作为参数的第二次返回的textVal值。 现在,您可以设置从任何地方的文本,并从任何地方的价值,只是用户setText(MyText.getText)

希望这将解决您的问题,请你删除一个评论,如果荫错..