Android开发的第一天,请原谅任何无知。
我的MainActivity类包含以下代码:
// Create the tabs
intent = new Intent().setClass(this, DisplayActivity.class);
spec = tabHost.newTabSpec("Display")
.setIndicator("Display")
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, SettingsActivity.class);
spec = tabHost.newTabSpec("Settings")
.setIndicator("Settings")
.setContent(intent);
tabHost.addTab(spec);
我想从显示标签中的设置中检索字段的值。我怎么能这样做?
答案 0 :(得分:1)
为什么不使用“共享偏好”?设置字段后,更新首选项。当您需要显示时,请阅读首选项。有关详情,请参阅Data Storage。
答案 1 :(得分:1)
有2-3种方法可以做同样的事情 1.在应用程序级别使用变量 2.使用Shared Pref。
使用getter setter方法创建扩展Application的类。
在一个活动中设置数据
Times myApp = ((Times)getApplication()); // where Times is my getter setter class
which extends Applicaton
myApp.setHour1(5);
在另一项活动中获取数据
Times myApp = ((Times)getApplication());
int variable = (myApp.getHour1());
别忘了在Manifest文件中提及你的应用程序级别类名称,如:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:name=".Times"
>
最好的运气
答案 2 :(得分:0)
我使用的方法与其他人在帖子上建议的方法略有不同。
我将公共数据对象在添加选项卡时传递的intent中的不同选项卡中的活动之间共享。在您的示例中,使用此方法的代码如下所示:
// Create the tabs
MyObject myObj = new MyObj();
//MyObject should implement android.os.Parcelable interface
intent = new Intent().setClass(this, DisplayActivity.class);
intent.putExtra("myObjKey", myObj);
spec = tabHost.newTabSpec("Display")
.setIndicator("Display")
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, SettingsActivity.class);
intent.putExtra("myObjKey", myObj);
spec = tabHost.newTabSpec("Settings")
.setIndicator("Settings")
.setContent(intent);
tabHost.addTab(spec);
在单个活动中,可以从启动时提供给活动的意图中获取相同的对象。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.somecontentlayout);
MyObject myObj = getIntent().getParcelableExtra("myObjKey");
}
希望这有帮助。