从另一个选项卡上的字段读取值

时间:2012-02-20 02:18:03

标签: android

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);

我想从显示标签中的设置中检索字段的值。我怎么能这样做?

3 个答案:

答案 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");
}

希望这有帮助。