Android

SpinnerとTextViewを用いたAndroidサンプルアプリ

Posted 10月 11 2012 by NABE  , , with 0 コメント

Spinnerで選択した項目を、TextViewに表示させるサンプルアプリです!

※はじめに
この記事はAndroidアプリの開発が、初心者であるという方のための記事です。
そのため、なるべく複雑な説明は避け、コピー&ペイストですぐに動くものをご紹介します。
JavaやAndroidを理解されている方で細かい説明が必要な方は、当ブログ内の連載記事である「Android Tips」をご覧ください。

今回はAndroidのウィジェットSpinner(スピナー)、TextView(テキストビュー)を用いたアプリです。
Spinnerは選択ダイアログのことですが、写真では2枚目がSpinnerです。

このサンプルアプリはSpinnerで選択したものをTextViewにセットします。
Spinnerの使い方は意外に簡単です、是非お試しください。

Spinnerで選択したものをTextViewに表示

アプリ完成図

MainActivity.java(ソースコード)

ソースコードは下記の3つの方法のどれかで試してみてください。
どれも結果は同じになります。
また、今回はソースコード内にコメントにて各々説明が入っていますので、併せてご確認ください。

方法①:匿名クラスを用いる方法

package com.example.spinnersample;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Spinner;
import android.widget.TextView;

public class MainActivity extends Activity {

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

		Spinner spinner = (Spinner) findViewById(R.id.spinner1);
		spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

			// アイテムが選択された時の動作
			@Override
			public void onItemSelected(AdapterView<?> arg0, View arg1,
					int arg2, long arg3) {
				// TODO 自動生成されたメソッド・スタブ
				Spinner spinner = (Spinner) arg0;
				String str = spinner.getSelectedItem().toString();

				TextView textView = (TextView) findViewById(R.id.textView2);
				textView.setText(str);
			}

			// 何も選択されなかった時の動作
			@Override
			public void onNothingSelected(AdapterView<?> arg0) {
				// TODO 自動生成されたメソッド・スタブ
			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}

}

方法②:匿名クラスを用いない方法

package com.example.spinnersample;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Spinner;
import android.widget.TextView;

public class MainActivity extends Activity implements OnItemSelectedListener {

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

		Spinner spinner = (Spinner) findViewById(R.id.spinner1);
		spinner.setOnItemSelectedListener(this);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}

	// アイテムが選択された時の動作
	@Override
	public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
			long arg3) {
		// TODO 自動生成されたメソッド・スタブ
		Spinner spinner = (Spinner) arg0;
		String str = spinner.getSelectedItem().toString();

		TextView textView = (TextView) findViewById(R.id.textView2);
		textView.setText(str);
	}

	@Override
	public void onNothingSelected(AdapterView<?> arg0) {
		// TODO 自動生成されたメソッド・スタブ

	}

}

方法③:匿名クラスを用いずに、処理を別クラスで定義する方法

package com.example.spinnersample;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Spinner;
import android.widget.TextView;

public class MainActivity extends Activity {

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

		Spn spn = new Spn();
		Spinner spinner = (Spinner) findViewById(R.id.spinner1);
		spinner.setOnItemSelectedListener(spn);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}

	// アイテムが選択された時の動作
	class Spn implements OnItemSelectedListener {

		@Override
		public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
				long arg3) {
			// TODO 自動生成されたメソッド・スタブ
			Spinner spinner = (Spinner) arg0;
			String str = spinner.getSelectedItem().toString();

			TextView textView = (TextView) findViewById(R.id.textView2);
			textView.setText(str);
		}

		@Override
		public void onNothingSelected(AdapterView<?> arg0) {
			// TODO 自動生成されたメソッド・スタブ

		}
	}
}

activity_main.xml

今回の画面の定義(activity_main.xml)は下記になります。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:text="Spinner→TextView"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/textView1"
        android:entries="@array/Sample"
        android:prompt="@string/spinnerSample" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/spinner1"
        android:text=""
        android:textAppearance="?android:attr/textAppearanceMedium" />

</RelativeLayout>

strings.xml

今回の画面の定義(string.xml)は下記になります。

<resources>

    <string name="app_name">SpinnerSample</string>
    <string name="hello_world">Hello world!</string>
    <string name="menu_settings">Settings</string>
    <string name="title_activity_main">SpinnerSample</string>

    <string-array name="Sample">
        <item>Android</item>
        <item>Java</item>
        <item>LAMP</item>
    </string-array>

    <string name="spinnerSample">Spinner Sample</string>

</resources>

これでOKです。


Android サンプルアプリ集



  未経験OKの仕事 |  上場企業の仕事 |  高待遇の仕事 |  外資系の仕事 |  社内SEで検索 |  自社サービスで検索





メールアドレス
ご質問・問い合わせ等、ご自由にお書きください。