Androidプログラミングブログ

Androidプログラミングを勉強していく中でわかったことをメモする

【Androidプログラミング入門 #031】Fragmentを使う

はじめに

Fragmentを使う。

1. プロジェクト作成

f:id:fjswkun:20151112222818p:plain

f:id:fjswkun:20151112222828p:plain

f:id:fjswkun:20151112222839p:plain

f:id:fjswkun:20151112222850p:plain

2. ActivityにFragmentActivityを継承させる

MainActivity.javaを開きます。

クラスを宣言している行のextendsより後ろを「FragmentActivity」に変更します。

public class MainActivity extends FragmentActivity {
}

変更したことにより、もしかするとonCreateメソッド内でエラーが発生するかもしれません。
AppCompatActivityからFragmentActivityから変更したときに発生するかもしれません。
そのときはエラーの部分を解消してください。

3. Fragmentクラスのサブクラスを作成する

f:id:fjswkun:20151112230700p:plain

f:id:fjswkun:20151112230709p:plain

4. Fragmentのレイアウトを修正する

手順3で作成したクラスのレイアウトファイルを開きます。

下記のようにします。 EditText、その下にButtonを配置しています。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.swift_studying.samplefragment.InputFragment">

    <EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="40dp" />
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editText"
        android:text="押す"/>

</RelativeLayout>

5. Fragmentのソースファイルを修正します。

Buttonを押すとEditTextに入力した文字列が
トーストで表示されるようにしています。

package com.swift_studying.samplefragment;

import android.os.Bundle;
import android.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class InputFragment extends Fragment {

    public InputFragment() {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_input, container, false);
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState){
        super.onViewCreated(view, savedInstanceState);

        final EditText editText = (EditText)view.findViewById(R.id.editText);
        Button button = (Button)view.findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (editText.getText().length() > 0){
                    Toast.makeText(getActivity(), editText.getText(), Toast.LENGTH_LONG).show();
                }
            }
        });
    }

}

6. 実行

実行します。

f:id:fjswkun:20151112231149p:plain

おわりに

この例だとFragment使わなくていいんじゃない?と思う。
応用は今後の課題とします。

うまく実行されなかった方はこちらからサンプルをダウンロード。

SampleFragment.zip - Google ドライブ

参考情報

参考

Androidアプリ開発逆引きレシピ (PROGRAMMER’S RECiPE)

Androidアプリ開発逆引きレシピ (PROGRAMMER’S RECiPE)

開発用デバイス

Androidの勉強をはじめた人は知っているようにエミュレーターはちょー遅い。
開発用に安いAndroidを買えば、勉強がはかどります!
iPhoneと比較すると安いので買ったほうがいいと思います。

おすすめデバイス

勉強用に使うだけなので価格が高い最新デバイスは必要ないと思います。
最新のデバイスは一人前のAndroidプログラマーになったら購入を検討しましょう。

nexus5 16GBASUS Nexus7 ( 2013 ) TABLET

その他に探すなら↓から。
Android nexus5を勉強用に購入