我目前正在设计一个电子书阅读器应用作为我的项目,我在从其他活动更改 textview 的文字时遇到了问题。
我的项目内容,
活动1 包含两个按钮,当点击 button1 时,应显示“Some Text”,当点击 button2 时“其他文字” sholud出现在 TextView1 中,位于 Activity2 中。
我的意思是文本应该只出现在TextView1中。没有其他textview。好的。
请用一个简单的代码示例来解决我的问题。
对于问题中的任何错误表示不好意思,因为这是我第一次尝试在互联网上提问。
谢谢
答案 0 :(得分:0)
据我所知,您在第一次活动时无法访问第二个活动的UI组件。所以最好的方法是通过putExtra意图方法传递值,然后通过获取它在第二个活动的oncreate中将其设置为textview。以下是显示此方法的链接
答案 1 :(得分:0)
您无法在其他活动上设置文字。使用intent将值传递给下一个活动,然后在Activity 2的onCreate()方法上从intent中检索后设置文本。
答案 2 :(得分:0)
希望您了解android中SharedPreferences的概念。使用它,您可以满足此要求。这是一个全球性的地方,您可以在应用程序的任何位置设置其值,并在任何需要的任何地方使用它!
在Activity1中,
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
}
}
在Activity2中,
...
SharedPreference s_pref=PreferenceManager.getDefaultSharedPreferences(context);
Editor edit=s_pref.edit();
String text=s_pref.getString("textview_text", "default text");
textView1.setText(text);
...
答案 3 :(得分:0)
如果你想在textview
上显示另一个activity
上的文字然后在PutExtras
的帮助下传递这些值,并在getExtras
的帮助下获取这些值,那么它非常简单{1}}使用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
。
答案 4 :(得分:0)
您可以使用一个类MyText()
,您可以在其中设置和重置文本视图的文本或任何其他属性。
如果您有方法setTextView(String text)
,另一种方法说getText()
和全局变量textVal
第一种方法将设置textVal = text
,即作为参数发送的值,第二种方法将返回textVal
。
现在,您可以从任何位置设置文本,并从任何位置获取值,只需用户setText(MyText.getText)
希望这会解决您的问题,如果我错了,请发表评论..