2012-02-20 8 views
0

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

私は表示タブの設定からフィールドの値を取得します。これどうやってするの?

答えて

1

「共有設定」を使用しないのはなぜですか?フィールドが設定されたら、設定を更新します。あなたがそれを表示する必要があるときは、好みを読んでください。詳細については、Data Storageを参照してください。

1

同じことを実行する2つの方法があります。 1.アプリケーションレベルの変数を使用します。 2. Shared Pref。

getter setterメソッドを持つアプリケーションを拡張するクラスを作成します。

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:name=".Times" 
    > 

ベスト:1つの活動中のデータ

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

いけないようにマニフェストファイルでウルアプリケーションレベルのクラス名を言及するのを忘れて設定

幸運の

0

私は、ポスト上で他の人が示唆したアプローチと少し異なるアプローチを使用します。

一般的なデータオブジェクトは、タブを追加する際に渡されるインテントの異なるタブのアクティビティで共有されます。同じオブジェクトは、それが立ち上げたときにアクティビティに供給される意図から得ることができ、個々の活動では

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

希望します。

関連する問題