やる気維持のためのブログ

大学の課題、自主勉など...。

Androidアプリ開発:

現状

  • 初回

進捗

  • スタート画面と時間割ページのスクロール対応フラグメントの構築

コード部分

Main側のソースコード

public class MainActivity extends AppCompatActivity {

    
    private Spinner spinner;
    final private String spinnerItems[] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //初期フラグメントの呼び出し
        MondayFragment firstFragment = new MondayFragment();
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        transaction.add(R.id.fragment_container, firstFragment);
        transaction.commit();


        spinner = findViewById(R.id.spinner);
       

        // ArrayAdapter
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
                android.R.layout.simple_spinner_item, spinnerItems);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        // spinner に adapter をセット
        spinner.setAdapter(adapter);

        // リスナーを登録
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            // アイテムが選択された時
            @Override
            public void onItemSelected(AdapterView<?> parent,
                                       View view, int position, long id) {

                //その曜日のfragmentを呼ぶ処理
               
            }

            // アイテムが選択されなかった
            public void onNothingSelected(AdapterView<?> parent) {
                //
            }
        });
    }
    
}

フラグメントの使い方

        MondayFragment firstFragment = new MondayFragment();
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        transaction.add(R.id.fragment_container, firstFragment);
        transaction.commit();
  1. 呼び出したいフラグメントに紐づけてあるjavaファイルのインスタンス(firstFragment)を生成する。
  2. その後フラグメントに関する処理を行うためにFragmentTransactionを使ってインスタンス(transaction)を生成する。
  3. transaction.add("入れ込むレイアウト部分のidを指定(今回はactivity_mainの内部)", そのレイアウトを呼び出すインスタンス )
  4. transaction.commit()により実行

スピナーの使い方

        ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
                android.R.layout.simple_spinner_item, spinnerItems);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        spinner.setAdapter(adapter);

xml側的には普通のViewと同様に扱う。

  1. adapterを使って扱うデータ(今回はspinnerItems)を設定しインスタンスの生成。
  2. spinnerのメソッドsetAdapterにより、このadapterをスピナーにセットする。

成果

  • ScrollViewの使い方
  • Spinnerの使い方
  • Fragmentの使い方

次回予定

  • フラグメントの生成の分岐と時間割部分の詳細設計
  • それぞれの科目部分についてのデータ管理部分

kazuki0724i