fkm blog

software開発に関することを書いていきます

Androidアプリでstatic変数の使い方(2)

エントリー数稼いでるだけな感がしなくもないですが.

擬似的にこんなアプリを考えてみる.

  • ログイン画面と, メイン画面の2つ
  • ログイン画面でログイン時, static変数にアクセストークンをセット
  • メイン画面では, static変数に入っているアクセストークンを使ってAPI call

もうちょい簡略化すると, こんな感じ

  • ログイン画面でボタン押したら, static変数に何か値をセットしてメイン画面に
  • メイン画面では, static変数の値を表示

コードを書いてみる.

まずは, ボタンを押したときの処理.

@Override
public void onClick(View v) {
    MainActivity.token = "user1234";
                
    FragmentManager manager = getFragmentManager();
    FragmentTransaction transaction = manager.beginTransaction();
                
    transaction.addToBackStack("");
    transaction.replace(R.id.main, MainFragment.newInstance());
                
    transaction.commit();
}

で, MainFragmentで表示させる部分. 割と投げやり(ぉ

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    TextView text = new TextView(inflater.getContext());
    text.setGravity(Gravity.CENTER);
    text.setText("token is " + MainActivity.token);
               
    return text;
}

そして以下の手順をやってみる.

  1. アプリを起動する(Eclipseの実行で)
  2. ボタンを押して, MainFragmentに移動する
  3. Homeボタンを押してホームへ
  4. ddmsでプロセスを選んでStop process(赤いアイコン)で止める
  5. 止めたアプリをタップし起動

token is null って表示されるはず. この画面の前提が崩れてるよね?