我想知道如何在不启动活动的情况下通过意图传递来自一个活动的数据。我正在使用TabViews,当我启动另一个Activity时,我松开了我的TabView和TabIcons,因为我使用的是MainActivity.tabHost.setCurrentTab(2);在标签之间切换。
btnShowResult.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
result = database.getResult();
MainActivity.tabHost.setCurrentTab(2);
}
});
我定义了一个全局变量结果,并在单击Button时用我的数据库中的值填充它。它加载我的第三个标签,我调用txtView.setText(SecondTab.result +“”);
第一次单击按钮时,此功能正常。但是更改变量结果对txtView没有影响,因为它没有刷新。
如何在更改全局变量结果后刷新txtView?调用ThirdTab.txtView.invalidate();在onClick-Function中导致我的应用程序崩溃。
感谢。
编辑:
好的。我通过将我的结果保存到sharedPrefs并从第二个Tab中加载它来使用SharedPreferences。但是在我的txtView中显示的结果仍然相同,并且不会更改。在我的sharedPrefs结果发生变化后,我在哪里以及如何告诉我的第二个标签刷新txtView?
答案 0 :(得分:0)
您可以保存共享偏好设置中所需的数据,然后您可以从任何活动中访问它,因此您无需通过意图和使用启动活动传递它
http://android-er.blogspot.com/2011/01/example-of-using-sharedpreferencesedito.html
http://saigeethamn.blogspot.com/2009/10/shared-preferences-android-developer.html
http://alchemiaandroid.altervista.org/sharedPreferencesTutorial.html
以上链接是使用共享首选项的教程示例。 将数据保存为(键,值)对,然后您可以通过其键访问所需的值
答案 1 :(得分:0)
如果您再次调用txtView.setText(result)
该怎么办?
答案 2 :(得分:0)
在销毁应用程序之前保持值的最佳方法是共享首选项。 因此,请按照此链接存储和获取共享首选项中的值 http://saigeethamn.blogspot.in/2009/10/shared-preferences-android-developer.html
答案 3 :(得分:0)
现在可以使用,虽然代码不是很好:
public static int hasChanged = 0;
...
btnShowResult.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
result = database.getResult();
if (hasChanged != 0)
Tab3.txtView.setText(result+"");
MainActivity.tabHost.setCurrentTab(2);
}
});
在创建和绘制txtView之后的第3个选项卡中,我将全局变量hasChanged设置为1,因此现在每次单击Button btnShowResult后,txtView都会设置为result的新值。
感谢帮助人员。