2014/09/09

[android]Fragmentに手を出して良いものか・・・

Android Studioで値を見るとデフォルトで10進数になるようだ。
切り替えるのが面倒なので、デフォルトを16進数にできないものかと思いつつ、今日も勉強中です。

 

AndroidやJavaのわからんことを書いているが、心優しき人々がコメントをくださる(全然関係ないけど、なんでサマリア人は「よき」がつくんだろう?)
ありがたく読みながら、お勉強している。

さて、今回はFragment。
「NFC関係はFragmentに書いて、Activityのサイクルとは切り離している」とのコメントが。
名前は聞いたことがあるけど、そもそもFragmentが何かわかってないので、とりあえずそこだけ調べて、私が手を出せるものか考えよう。


ネットでFragmentを調べて、心惹かれるキーワードだけ書いてみよう。
やる気が出るかもしれない。

  • タブレット端末とスマートフォン端末で表示を切り替えやすくなる
  • 複数のFragmentを合成してActivityを作ることができる
  • ロジックとUIを分けることができる

惹かれるような、そうでもないような・・・。
たぶん、「ボタン押す→何か動く」くらいのアプリしか作ってないからだろう。
ロジックっちゅうロジックは、全部ライブラリに突っ込んでるからなぁ。

わかりやすいスライドがあった。

あー、再利用かー。
あんまり画面作るの好きじゃないので、一度作ったら使い回せるとうれしいけど、そんなイメージかいな?
あるいは、あれこれ悩まず、とりあえずやってみたらわかるようなものか。


今作っているアプリで、唯一Fragmentが使われている画面がある。
PreferenceFragmentだ。
どっかのサイトに「PreferenceActivityじゃなくてPreferenceFragmentを使う場合」ってのがあったので、まねしてみたのだ。

短いので、貼ろう。

public class SettingsActivity extends Activity {

    public static final String PREF_MASTER_KEY = "pref_master_key";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getFragmentManager().beginTransaction().replace(android.R.id.content, new PlaceholderFragment()).commit();
    }
    public static class PlaceholderFragment extends PreferenceFragment {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.preference_settings);
        }
    }
}

関係するのはonCreate()の2行目と、static classなPlaceholderFragment。
Activityは、PreferenceActivityじゃなくて普通のActivity。
static classになっているPreferenceFragmentってのが、Fragmentだろう。
それをnewして置き換えるように書かれているところが「複数のFragmentを集めて1つのActivityを作る」というところの一端なんだろう(ここではFragmentが1つしかないので)。

 

Activityっていう動物園があって、そのなかにゾウたちのFragmentとかトラたちのFragmentとかがそれぞれ入っているようなイメージなのかな(なんで動物園なんだ・・・)。

2 件のコメント:

  1. 動物園の認識は合ってます。
    Fragmentは使いこなせば多画面対応とかがぐっと楽になって素敵ですが、画面サイズとか気にしない間はあまりメリットないです。
    できたらお行儀がいいって感じかなぁ。

    返信削除
    返信
    1. なるほど、お行儀ですか。
      私の場合、どうしても「お客さんの要望」があるので、自分でどうでもよくても、というのがありますね。
      レイアウトとかがまだ操れないですが・・・。

      なんかもう、いつもみたいに、LEDの点滅周期とかブザーの鳴動間隔とかで許してくれないですかね。
      そういう一次元の表現ばっかりやってると、画面で表せっていきなり言われると戸惑っちまいます・・。

      削除

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。