SpinnerとIntentの組み合わせ
入力画面
表示画面
機能
- 入力画面: ドロップダウンリストでAM/PMを選択 → SHOWボタンで表示画面へ
- 表示画面: 選択したものを表示する → BACKボタンで入力画面
ポイント
- getIntent(): 自分を起動したintentを取得する
必要なファイル
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="10dp" tools:context="com.example.orisa.myintent6.MainActivity"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_alignStart="@+id/showBtn" android:text="CHOOSE AM/PM" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView" android:layout_centerHorizontal="true" android:layout_marginTop="10dp" android:spinnerMode="dialog" /> <Button android:id="@+id/showBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/spinner" android:layout_centerHorizontal="true" android:layout_marginTop="50dp" android:text="show result" /> </RelativeLayout>
MainActivity.java
package com.example.orisa.myintent6; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.Spinner; import android.widget.Toast; public class MainActivity extends AppCompatActivity { //部品の変数 Spinner spinner; Button showBtn; //spinner用の変数 String[] items = {"AM", "PM"}; String time = "empty time"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //部品を取得 spinner = (Spinner)findViewById(R.id.spinner); showBtn = (Button)findViewById(R.id.showBtn); //Spinnerの設定 //ArrayAdapterの設定 ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, items); 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) { time = (String)parent.getSelectedItem(); } @Override public void onNothingSelected(AdapterView<?> parent) { //dummy } }); //showBtnにリスナーを設定 showBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getApplication(), ShowActivity.class); //intentにデータを入れる intent.putExtra("TIME_STRING", time); //activityの開始 startActivity(intent); } }); } }
activity_show.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="10dp"> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentStart="true" android:layout_alignParentTop="true" android:text="YOU SELECTED:" /> <TextView android:id="@+id/showTv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentStart="true" android:layout_below="@+id/textView2" android:layout_marginTop="10dp" /> <Button android:id="@+id/backBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/showTv" android:layout_centerHorizontal="true" android:layout_marginTop="50dp" android:text="back" /> </RelativeLayout>
ShowActivity.java
package com.example.orisa.myintent6; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.TextView; /** * Created by orisa on 2017/06/06. */ public class ShowActivity extends AppCompatActivity { //部品の変数 TextView showTv; Button backBtn; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_show); //部品を取得 showTv = (TextView)findViewById(R.id.showTv); backBtn = (Button)findViewById(R.id.backBtn); //intentを受け取る Intent intent = getIntent(); String data_show = intent.getStringExtra("TIME_STRING"); showTv.setText(data_show); //backBtnにリスナーをつける backBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //intentの終了 finish(); } }); } }