Dialog を使ってみた

Dialog は
java.lang.Object
  ↳ android.app.Dialog
を使います

というわけで、Dialog を使ってみた
Dialog で任意のレイアウトを表示させることができます

サンプルプログラム
  1. import android.app.Activity;  
  2. import android.app.Dialog;  
  3. import android.os.Bundle;  
  4. import android.view.View;  
  5.   
  6. public class DialogTest extends Activity {  
  7.   Dialog dialog;  
  8.   
  9.   @Override  
  10.   public void onCreate(Bundle savedInstanceState) {  
  11.     super.onCreate(savedInstanceState);  
  12.     setContentView(R.layout.main);  
  13.    
  14.     dialog = new Dialog(this);  
  15.   
  16.     // Dialog のレイアウトを指定  
  17.     dialog.setContentView(R.layout.dialogtest);  
  18.   
  19.     // タイトルの指定  
  20.     dialog.setTitle("Title");  
  21.   
  22.     // Button がクリックされたときに呼び出されるコールバックを登録  
  23.     dialog.findViewById(R.id.Dialog_Button)  
  24.     .setOnClickListener(new View.OnClickListener() {  
  25.       public void onClick(View v) {  
  26.         dialog.dismiss();  
  27.       }  
  28.     });  
  29.     
  30.     dialog.show();  
  31.   }  
  32. }  

XMLリソース
  1. <LinearLayout   
  2.   xmlns:android="http://schemas.android.com/apk/res/android"  
  3.   android:orientation="vertical"   
  4.   android:layout_width="fill_parent"  
  5.   android:layout_height="fill_parent">  
  6.   <TextView   
  7.     android:id="@+id/Dialog_TextView"  
  8.     android:layout_width="fill_parent"  
  9.     android:layout_height="wrap_content"   
  10.     android:text="TextView">  
  11.   </TextView>  
  12.   <Button   
  13.     android:id="@+id/Dialog_Button"  
  14.     android:layout_width="wrap_content"  
  15.     android:layout_height="wrap_content"   
  16.     android:text="Button">  
  17.   </Button>  
  18.   <CheckBox   
  19.     android:id="@+id/Dialog_CheckBox"  
  20.     android:layout_width="wrap_content"  
  21.     android:layout_height="wrap_content"   
  22.     android:text="CheckBox">  
  23.   </CheckBox>  
  24. </LinearLayout>  

プログラムを実行すると...



こんな感じ!

AlertDialog を使ってみた

AlertDialog は
java.lang.Object
  ↳ android.app.Dialog
    ↳ android.app.AlertDialog
を使います

というわけで、AlertDialog をいじってみた

サンプルプログラム
  1. import android.app.Activity;  
  2. import android.app.AlertDialog;  
  3. import android.content.DialogInterface;  
  4. import android.os.Bundle;  
  5.   
  6. public class AlertDialogTest extends Activity {  
  7.   AlertDialog.Builder alertDialogBuilder;  
  8.   @Override  
  9.   public void onCreate(Bundle savedInstanceState) {  
  10.     super.onCreate(savedInstanceState);  
  11.     setContentView(R.layout.main);  
  12.   
  13.     alertDialogBuilder = new AlertDialog.Builder(this);  
  14.   
  15.     // Title を設定  
  16.     alertDialogBuilder.setTitle("Title");  
  17.   
  18.     // Message を設定  
  19.     alertDialogBuilder.setMessage("Message");  
  20.   
  21.     // Icon を設定  
  22.     alertDialogBuilder.setIcon(R.drawable.icon);  
  23.   
  24.     // Positive Button を設定  
  25.     alertDialogBuilder.setPositiveButton(  
  26.       "Positive",  
  27.       new DialogInterface.OnClickListener() {  
  28.         // Positive Button がクリックされた時の動作  
  29.         public void onClick(DialogInterface dialog, int which) {  
  30.   
  31.         }  
  32.       }  
  33.     );  
  34.   
  35.     // Neutral Button を設定  
  36.     alertDialogBuilder.setNeutralButton(  
  37.       "Neutral",   
  38.       new DialogInterface.OnClickListener() {  
  39.         // Neutral Button がクリックされた時の動作  
  40.         public void onClick(DialogInterface dialog, int which) {  
  41.   
  42.         }  
  43.       }  
  44.     );  
  45.   
  46.     // Negative Button を設定  
  47.     alertDialogBuilder.setNegativeButton(  
  48.       "Negative",   
  49.       new DialogInterface.OnClickListener() {  
  50.         // Negative Button がクリックされた時の動作  
  51.         public void onClick(DialogInterface dialog, int which) {  
  52.   
  53.         }  
  54.       }  
  55.     );  
  56.   
  57.     // AlertDialog を表示  
  58.     alertDialogBuilder.create().show();  
  59.   }  
  60. }  

プログラムを実行すると...



こんな感じ!

au が『IS01』を発表



本日行われたau新商品発表会において、au初となるSHARP製のAndroidスマートフォン「IS01」が発表されました。
5.0インチの大型液晶にタッチパネル、フルキーボードを搭載
ワンセグや赤外線通信も搭載している

au携帯向けサービスのAndroid版などをを提供するAndroid端末向けポータルサイト「au one Market」も同時にオープンするとのこと
LISMO!」も、本年9月下旬以降にアップデートにより、利用可能になる予定だそうです

詳しくは公式サイトより

ソフトバンクが『X06HT HTC Desire』発表

本日開催された ソフトバンク OPEN DAY イベント にて、ソフトバンク初のAndroid端末 X06HT, HTC Desireを発表しました。

HTC Desire は 3.7インチ有機ELディスプレイ、1GHzの高速CPU「Snapdragon」、最新のAndroid 2.1を搭載したハイスペックなAndroid 搭載スマートフォン。
また「HTC Sense」を搭載し、ユーザーのニーズに合わせたカスタマイズが可能

発売は2010年4月下旬以降で、4月上旬より予約受付とのこと

詳しくは公式サイトより

ImageView を使ってみた

ImageView は
java.lang.Object
  ↳ android.view.View
    ↳ android.widget.ImageView
を使用します

ImageView に画像を設定するには
リソースから設定,Bitmap で設定,XML で直接指定
などでできます

というわけで、ImageView をいじってみた

サンプルプログラム
  1. import android.app.Activity;  
  2. import android.graphics.BitmapFactory;  
  3. import android.os.Bundle;  
  4. import android.widget.ImageView;  
  5.   
  6. public class ImageViewTest extends Activity {  
  7.   ImageView imageView[];  
  8.   @Override  
  9.   public void onCreate(Bundle savedInstanceState) {  
  10.     super.onCreate(savedInstanceState);  
  11.     setContentView(R.layout.imageviewtest);  
  12.   
  13.     imageView = new ImageView[5];   
  14.     imageView[0] = (ImageView)findViewById(R.id.ImageView1);  
  15.     imageView[1] = (ImageView)findViewById(R.id.ImageView2);  
  16.     imageView[2] = (ImageView)findViewById(R.id.ImageView3);  
  17.     imageView[3] = (ImageView)findViewById(R.id.ImageView4);  
  18.     imageView[4] = (ImageView)findViewById(R.id.ImageView5);  
  19.     
  20.     for (int i = 0; i < 3; i++) {  
  21.       // ImageView にリソースを設定  
  22.       imageView[i].setImageResource(R.drawable.icon);     
  23.     }  
  24.     
  25.     // ImageVIew に Drawable を設定  
  26.     imageView[3].setImageDrawable(getResources().getDrawable(R.drawable.icon));  
  27.   
  28.     // ImageView に Bitmap を設定  
  29.     imageView[4].setImageBitmap(  
  30.         BitmapFactory.decodeResource(  
  31.           getResources(),   
  32.           R.drawable.icon  
  33.         ));  
  34.   
  35.     for (int i = 0; i < 5; i++) {  
  36.       // ImageView のアルファ値を設定(0 ~ 255)  
  37.       imageView[i].setAlpha(i * 255 / 4);  
  38.     }  
  39.   }  
  40. }  
ImageView を XML で指定
  1. <ImageView  
  2.   android:id="@+id/ImageView"  
  3.   android:layout_width="wrap_content"   
  4.   android:layout_height="wrap_content"  
  5.   android:src="@drawable/icon">  
  6. </ImageView>  
プログラムを実行すると...
こんな感じ!


参考サイト http://developer.android.com/intl/ja/reference/android/widget/ImageView.html

Activity のライフサイクル

Activity のライフサイクルについて

Activity の基本的な3つの状態
  • アクティブ状態:フォアグランドに表示されている状態
  • 一時停止状態: 前面のアクティビティが透明か全画面表示でないため一部が見えている状態
  • 停止状態: 別のアクティビティがによって完全に隠されている状態
をとる

Activity の状態が遷移したときに呼び出される関数
  • void onCreate(Bundle savedInstanceState)
  •      Activiy が始めて作成されるときに呼び出される
  • void onRestart()
  •      Activity 停止後、再会するときに呼び出される
  • void onStart()
  •      Activity がユーザーから見えるようになる直前に呼び出される
  • void onResume()
  •      Activity がユーザーとの対話を開始する直前に呼び出される
  • void onPause()
  •      システムが別の Activity を開始しようとしているときに呼び出される
  • void onStop()
  •      Activity がユーザーから見えなくなったときに呼び出される
  • void onDestroy()
  •      Activity が破棄される前に呼び出される

ライフサイクル図

プロセスが強制終了するとき、onPause() だけは必ず呼び出されるが、onStop() と onDestroy() は、必ず呼び出されるとは限らない

Activity が強制終了させられる前の状態を保存しておきたい場合は、onSaveInstanceState() メソッドを実装
これは onPause() が呼び出される前に呼び出され、Activity の動的な状態を名前/値ペアとして記録できる Bundle オブジェクトが渡される。
Activity がもう一度開始されると、Bundle は onCreate() と、onStart() の後に呼び出される onRestoreInstanceState() メソッドに渡され、保存されている状態を復元できる

onSaveInstanceState() は常に呼び出されるわけではないので、一時的な状態を記録する目的のみに使用し、
永続データの格納には onPause() を使用したほうがよい

うーん、なるほど!

参考サイト
http://developer.android.com/intl/ja/guide/topics/fundamentals.html

SeekBar を使ってみた

SeekBar は
java.lang.Object
  ↳ android.view.View
    ↳ android.widget.ProgressBar
      ↳ android.widget.AbsSeekBar
        ↳ android.widget.SeekBar
を使用します

とういうわけで、SeekBar をいじってみた

サンプルプログラム
  1. import android.app.Activity;  
  2. import android.os.Bundle;  
  3. import android.widget.SeekBar;  
  4. import android.widget.SeekBar.OnSeekBarChangeListener;  
  5.   
  6. public class SeekBarTest extends Activity {  
  7.   SeekBar seekBar;  
  8.   @Override  
  9.   public void onCreate(Bundle savedInstanceState) {  
  10.     super.onCreate(savedInstanceState);  
  11.     setContentView(R.layout.seekbartest);  
  12.   
  13.     seekBar = (SeekBar) findViewById(R.id.SeekBar01);  
  14.   
  15.     // SeekBar の最大値を設定  
  16.     seekBar.setMax(100);  
  17.     
  18.     // SeekBar の現在値を設定  
  19.     seekBar.setProgress(75);  
  20.   
  21.     // SeekBar のセカンダリ値を設定  
  22.     seekBar.setSecondaryProgress(75);  
  23.     
  24.     // SeekBar の値が変更されたときに呼び出されるコールバックを登録  
  25.     seekBar.setOnSeekBarChangeListener(  
  26.       new OnSeekBarChangeListener() {  
  27.         // SeekBar の値が変わったときの動作   
  28.         public void onProgressChanged(  
  29.             SeekBar seekBar,  
  30.             int progress,  
  31.             boolean fromTouch) {  
  32.         }  
  33.   
  34.         // SeekBar のタッチの開始時の動作  
  35.         public void onStartTrackingTouch(  
  36.             SeekBar seekBar) {  
  37.         }  
  38.   
  39.         // SeekBar のタッチの終了時の動作  
  40.         public void onStopTrackingTouch(  
  41.             SeekBar seekBar) {  
  42.         }  
  43.       }  
  44.     );  
  45.   }  
  46. }  
XMLリソース
  1. <SeekBar  
  2.   android:id="@+id/SeekBar"  
  3.   android:layout_width="fill_parent"  
  4.   android:layout_height="wrap_content">  
  5. </SeekBar>  
SeekBar の値をXMLで指定することも可能
  1. <SeekBar  
  2.   android:id="@+id/SeekBar"  
  3.   android:layout_width="fill_parent"  
  4.   android:layout_height="wrap_content"  
  5.   android:max="100"  
  6.   android:progress="50"  
  7.   android:secondaryProgress="75">  
  8. </SeekBar>  
プログラムを実行すると...

こんな感じ!

うっすら見えているのがセカンダリ値

RatingBar を使ってみた

RatingBar は
java.lang.Object
  ↳ android.view.View
    ↳ android.widget.ProgressBar
      ↳ android.widget.AbsSeekBar
        ↳ android.widget.RatingBar
を使用します

というわけで、RatingBar をいじってみた

サンプルプログラム
  1. import android.app.Activity;  
  2. import android.os.Bundle;  
  3. import android.widget.RatingBar;  
  4. import android.widget.RatingBar.OnRatingBarChangeListener;  
  5.   
  6. public class RatingBarTest extends Activity {  
  7.   RatingBar ratingBar;  
  8.   @Override  
  9.   public void onCreate(Bundle savedInstanceState) {  
  10.     super.onCreate(savedInstanceState);  
  11.     setContentView(R.layout.ratingbartest);  
  12.     
  13.     ratingBar = (RatingBar) findViewById(R.id.RatingBar01);  
  14.     
  15.     // レイティングの最大数を設定  
  16.     ratingBar.setNumStars(5);  
  17.     // レイティングの最大数を取得  
  18.     int num = ratingBar.getNumStars();  
  19.    
  20.     // 現在のレイティング数を設定  
  21.     ratingBar.setRating(3.0f);  
  22.     // 現在のレイティングの数を取得  
  23.     float rate = ratingBar.getRating();  
  24.   
  25.     // RatingBar のレイティング数が変わったときに呼び出されるコールバックを登録  
  26.     ratingBar.setOnRatingBarChangeListener(  
  27.       new OnRatingBarChangeListener() {  
  28.         public void onRatingChanged(  
  29.             RatingBar ratingBar,   
  30.             float rating,   
  31.             boolean fromUser) {  
  32.           // RatingBar のレイティング数が変わったときの動作  
  33.         }   
  34.       }  
  35.     );  
  36.   }  
  37. }  
XMLリソース
  1. <RatingBar  
  2.   android:id="@+id/RatingBar"  
  3.   android:layout_width="wrap_content"   
  4.   android:layout_height="wrap_content">  
  5. </RatingBar>  
RatinBar の値をXMLで指定することも可能
  1. <RatingBar   
  2.   android:id="@+id/RatingBar"  
  3.   android:layout_width="wrap_content"  
  4.   android:layout_height="wrap_content"  
  5.   android:numStars="5"  
  6.   android:rating="3.0">  
  7. </RatingBar>  
プログラムを実行すると

こんな感じ!

ProgressBar を使ってみた

ProgressBar は
java.lang.Object
  ↳ android.view.View
    ↳ android.widget.ProgressBar
を使用します

とういわけで、ProgressBar をいじってみた

サンプルプログラム
  1. import android.app.Activity;  
  2. import android.os.Bundle;  
  3. import android.widget.ProgressBar;  
  4.   
  5. public class ProgressBarTest extends Activity {  
  6.   ProgressBar progressBar4, progressBar5;  
  7.   @Override  
  8.   public void onCreate(Bundle savedInstanceState) {  
  9.     super.onCreate(savedInstanceState);  
  10.     setContentView(R.layout.progressbartest);  
  11.     
  12.     progressBar4 = (ProgressBar) findViewById(R.id.ProgressBar04);  
  13.     progressBar5 = (ProgressBar) findViewById(R.id.ProgressBar05);  
  14.   
  15.     // 水平のとき  
  16.     // ProgressBar の最大値を設定  
  17.     progressBar4.setMax(100);  
  18.     // ProgressBar の値を設定  
  19.     progressBar4.setProgress(50);  
  20.     // ProgressBar のセカンダリ値を設定  
  21.     progressBar4.setSecondaryProgress(75);  
  22.     
  23.     // ProgressBar の不定(true)か特定(false)か  
  24.     progressBar5.setIndeterminate(true);  
  25.   }  
  26. }  
Indeterminate の値を true にすると下図のようなプログレスがずっとループする状態になる

XMLリソース
  1. <ProgressBar  
  2.   android:id="@+id/ProgressBar"  
  3.   android:layout_width="wrap_content"  
  4.   android:layout_height="wrap_content"  
  5.   style="?android:attr/progressBarStyle">  
  6. </ProgressBar>  

style=" " の部分を変えれば見た目を変更できる(下図)
  • 1つ目: style="?android:attr/progressBarStyleSmall"
  • 2つ目: style="?android:attr/progressBarStyle"
  • 3つ目: style="?android:attr/progressBarStyleLarge"
  • 4,5つ目: style="?android:attr/progressBarStyleHorizontal"
プログラムを実行すると...

こんな感じ!

ListView を使ってみた

ListView は
java.lang.Object
  ↳ android.view.View
    ↳ android.view.ViewGroup
      ↳ android.widget.AdapterView<T extends android.widget.Adapter>
        ↳ android.widget.AbsListView
          ↳ android.widget.ListView
を使用します

というわけで、ListView をいじってみた

サンプルプログラム
  1. import android.app.Activity;  
  2. import android.os.Bundle;  
  3. import android.view.View;  
  4. import android.widget.AdapterView;  
  5. import android.widget.ArrayAdapter;  
  6. import android.widget.ListView;  
  7.   
  8. public class ListViewTest extends Activity {  
  9.   ListView listView;  
  10.   @Override  
  11.   public void onCreate(Bundle savedInstanceState) {  
  12.     super.onCreate(savedInstanceState);  
  13.     setContentView(R.layout.listviewtest01);  
  14.   
  15.     listView = (ListView) findViewById(R.id.ListViewTest01_ListView);  
  16.   
  17.     // 表示させるリスト  
  18.     String[] items = new String[] {  
  19.         "First",  
  20.         "Second",  
  21.         "Third",  
  22.         "Fourth"  
  23.     };  
  24.   
  25.     // ArrayAdapter を作成  
  26.     ArrayAdapte<string> adapter =   
  27.       new ArrayAdapter<string> (  
  28.         this,  
  29.         android.R.layout.simple_list_item_1,  
  30.         items  
  31.       );  
  32.     
  33.     // ListView に Adapter を設定  
  34.     listView.setAdapter(adapter);  
  35.   
  36.     // ListView がクリックされた時に呼び出されるコールバックを登録  
  37.     listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {  
  38.       public void onItemClick(AdapterView parent, View view, int position, long id) {  
  39.       }  
  40.     });  
  41.   
  42.     // ListView のアイテムが選択された時に呼び出されるコールバックを登録  
  43.     listView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {  
  44.       public void onItemSelected(AdapterView parent, View view, int position, long id) {  
  45.       }  
  46.   
  47.       // なにも選択されなかったときの動作  
  48.       public void onNothingSelected(AdapterView parent) {  
  49.       }  
  50.     });  
  51.   }  
  52. }  
XMLリソース
  1. <ListView  
  2.   android:id="@+id/ListView"  
  3.   android:layout_width="fill_parent"  
  4.   android:layout_height="fill_parent">  
  5. </ListView>  

OnItemClickListener は List のアイテムがクリックされたときに、
OnItemSelectedListener は十字キー等により List のアイテムのフォーカスが移動したときに呼び出される

プログラムを実行すると...


こんな感じ!

RadioButton を使ってみた

RadioButton は
java.lang.Object
  ↳ android.view.View
    ↳ android.widget.TextView
      ↳ android.widget.Button
        ↳ android.widget.CompoundButton
          ↳ android.widget.RadioButton
を使用します
また、RadioButton をグループ化するために
java.lang.Object
  ↳ android.view.View
    ↳ android.view.ViewGroup
      ↳ android.widget.LinearLayout
        ↳ android.widget.RadioGroup
を使用します

というわけで、RadioButton をいじってみた

サンプルプログラム
  1. import android.app.Activity;  
  2. import android.os.Bundle;  
  3. import android.widget.RadioButton;  
  4. import android.widget.RadioGroup;  
  5.   
  6. public class RadioButtonTest extends Activity {  
  7.   RadioGroup radioGroup;  
  8.   @Override  
  9.   public void onCreate(Bundle savedInstanceState) {  
  10.     super.onCreate(savedInstanceState);  
  11.     setContentView(R.layout.radiobuttontest);  
  12.   
  13.     // RadioGroup の取得  
  14.     radioGroup = (RadioGroup) findViewById(R.id.RadioGroup);  
  15.   
  16.     // 指定した ID の RadioButton を選択  
  17.     radioGroup.check(R.id.RadioButton01);  
  18.     
  19.     // 選択されている RadioButton の ID を取得  
  20.     int Id = radioGroup.getCheckedRadioButtonId();  
  21.     
  22.     // 選択されている RadioButton が変わったときに呼び出されるコールバックを登録  
  23.     radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {  
  24.       public void onCheckedChanged(RadioGroup group, int checkedId) {  
  25.         // 選択されている RadioButton の取得  
  26.         RadioButton radioButton = (RadioButton) findViewById(checkedId);  
  27.   
  28.         // RadioButton のテキストを取得  
  29.         String text = radioButton.getText().toString();  
  30.       }  
  31.     });  
  32.   }  
  33. }  
XMLリソース
  1. <RadioGroup  
  2.   android:id="@+id/RadioGroup"  
  3.   android:layout_width="wrap_content"  
  4.   android:layout_height="wrap_content">  
  5.   <RadioButton  
  6.     android:id="@+id/RadioButton01"  
  7.     android:layout_width="wrap_content"  
  8.     android:layout_height="wrap_content"  
  9.     android:text="First">  
  10.   </RadioButton>  
  11.   <RadioButton  
  12.     android:id="@+id/RadioButton02"  
  13.     android:layout_width="wrap_content"  
  14.     android:layout_height="wrap_content"  
  15.     android:text="First">  
  16.   </RadioButton>  
  17.       ・  
  18.       ・  
  19.       ・        
  20. </RadioGroup>  

プログラムを実行すると...


こんな感じ!

Toast を使ってみた

Toast は
Java.lang.Object
  ↳android.widget.Toast
を使用します

というわけで、Toast をいじってみた

サンプルプログラム
  1. import android.app.Activity;  
  2. import android.os.Bundle;  
  3. import android.widget.Toast;  
  4.   
  5. public class ToastTest extends Activity {  
  6.   private static final String TEXT = "Toast Test";  
  7.   @Override  
  8.   public void onCreate(Bundle savedInstanceState) {  
  9.     super.onCreate(savedInstanceState);  
  10.     setContentView(R.layout.main);   
  11.   
  12.     // Toast を作成  
  13.   // 第3引数は表示時間(Toast.LENGTH_SHORT or Toast.LENGTH_LONG)  
  14.     Toast.makeText(this, TEXT, Toast.LENGTH_SHORT).show();  
  15.     // Toast.makeText(this, TEXT, Toast.LENGTH_LONG).show();  
  16.   }  
  17. }  
プログラムを実行すると


こんな感じ!

Spinner を使ってみた

Spinner は
java.lang.Object
  ↳ android.view.View
    ↳ android.view.ViewGroup
      ↳ android.widget.AdapterView<T extends android.widget.Adapter>
        ↳ android.widget.AbsSpinner
          ↳ android.widget.Spinner
を使用します

というわけで、Spinner をいじってみた

サンプルプログラム
  1. import android.app.Activity;  
  2. import android.os.Bundle;  
  3. import android.util.Log;  
  4. import android.view.View;  
  5. import android.widget.Adapter;  
  6. import android.widget.AdapterView;  
  7. import android.widget.ArrayAdapter;  
  8. import android.widget.Spinner;  
  9.   
  10. public class SpinnerTest extends Activity {  
  11.   Spinner spinner;  
  12.   @Override  
  13.   public void onCreate(Bundle savedInstanceState) {  
  14.     super.onCreate(savedInstanceState);  
  15.     setContentView(R.layout.spinnertest);  
  16.   
  17.     spinner = (Spinner) findViewById(R.id.Spinner01);  
  18.   
  19.     // ArrayAdapter を作成  
  20.     ArrayAdapter<Charsequence> adapter =  
  21.       ArrayAdapter.createFromResource(  
  22.         this,  
  23.         R.array.order,  
  24.         android.R.layout.simple_spinner_item  
  25.       );  
  26.   
  27.     // Adapter のレイアウトを設定  
  28.     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);  
  29.   
  30.     // Spinner に Adapter を設定  
  31.     spinner.setAdapter(adapter);  
  32.   
  33.     // Spinner に表示させるプロンプトを設定  
  34.     spinner.setPrompt("Spinner Prompt");  
  35.   
  36.     // Spinner の選択されているアイテムを設定  
  37.     int default_item = 0;  // 0 = first, 1 = second,...  
  38.     spinner.setSelection(default_item);  
  39.   
  40.     // Spinner のアイテムが選択された時に呼び出されるコールバックを登録  
  41.     spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {  
  42.       // アイテムが選択された時の動作  
  43.       public void onItemSelected(AdapterView parent,View view, int position,long id) {  
  44.         // Spinner を取得  
  45.         Spinner spinner = (Spinner) parent;  
  46.   
  47.         // 選択されたアイテムのテキストを取得  
  48.         String str = spinner.getSelectedItem().toString();  
  49.       }  
  50.   
  51.       // 何も選択されなかった時の動作  
  52.       public void onNothingSelected(AdapterView parent) {  
  53.       }  
  54.     });  
  55.   }  
  56. }  
XMLリソース
  1. <Spinner  
  2.   android:id="@+id/Spinner  
  3.   android:layout_width="wrap_content"  
  4.   android:layout_height="wrap_content"">  
  5. </Spinner>  
strings.xml
  1. <string-array name="order">  
  2.   <item>First</item>  
  3.   <item>Second</item>  
  4.   <item>Third</item>  
  5. </string-array>  
プログラムを実行すると


こんな感じ!

ちなみに上と同じものを XML だけで作れます

XMLリソース
  1. <Spinner  
  2.   android:id="@+id/Spinner  
  3.   android:layout_width="wrap_content"  
  4.   android:layout_height="wrap_content"  
  5.   android:entries="@array/order"  
  6.   android:prompt="@string/spinnerprompt">  
  7. </Spinner>  
strings.xml
  1. <string name="spinnerprompt">Spinner Prompt</string>  
リスナーなどの登録だけやればいいからこっちの方がすっきりしますね!


参考サイト
http://developer.android.com/intl/ja/reference/android/widget/Spinner.html

CheckBox を使ってみた

ChechBox は
java.lang.Object
  ↳ android.view.View
    ↳ android.widget.TextView
      ↳ android.widget.Button
        ↳ android.widget.CompoundButton
          ↳ android.widget.CheckBox
を使用します

というわけで、CheckBox をいじってみた

サンプルプログラム
  1. import android.app.Activity;  
  2. import android.os.Bundle;  
  3. import android.view.View;  
  4. import android.widget.CheckBox;  
  5.   
  6. public class CheckBoxTest extends Activity {  
  7.   CheckBox checkBox;  
  8.   @Override  
  9.   public void onCreate(Bundle savedInstanceState) {  
  10.     super.onCreate(savedInstanceState);  
  11.     setContentView(R.layout.checkboxtest);  
  12.     
  13.     checkBox = (CheckBox) findViewById(R.id.CheckBox01);  
  14.     
  15.     // CheckBox のチェック状態の設定  
  16.     checkBox.setChecked(true);  
  17.     
  18.     // CheckBox がクリックされた時に呼び出されるコールバックを登録  
  19.     checkBox.setOnClickListener(new View.OnClickListener() {  
  20.       public void onClick(View v) {  
  21.         // クリックされた CheckBox を取得  
  22.         CheckBox checkBox = (CheckBox) v;  
  23.   
  24.         // CheckBox のチェック状態を取得  
  25.         boolean checked = checkBox.isChecked();  
  26.       }  
  27.     });  
  28.   }  
  29. }  

XMLリソース
  1. <CheckBox  
  2.   android:id="@+id/CheckBox"  
  3.   android:layout_width="wrap_content"  
  4.   android:layout_height="wrap_content"  
  5.   android:text="CheckBox">  
  6. </CheckBox>  

プログラムを実行すると...


こんな感じ!

Button を使ってみた

Buton は
java.lang.Object
  ↳ android.view.View
    ↳ android.widget.TextView
      ↳ android.widget.Button
を使用します

というわけで、いろいろと値を指定して Button をいじってみた

サンプルプログラム
  1. import android.app.Activity;  
  2. import android.graphics.Color;  
  3. import android.os.Bundle;  
  4. import android.view.View;  
  5. import android.widget.Button;  
  6.   
  7. public class ButtonTest extends Activity {  
  8.   Button button1;  
  9.   Button button2;  
  10.   @Override  
  11.   public void onCreate(Bundle savedInstanceState) {  
  12.     super.onCreate(savedInstanceState);  
  13.     setContentView(R.layout.buttontest);  
  14.   
  15.     button1 = (Button) findViewById(R.id.Button01);  
  16.     button2 = (Button) findViewById(R.id.Button02);  
  17.   
  18.     // Button がクリックされた時に呼び出されるコールバックを登録  
  19.     button1.setOnClickListener(new View.OnClickListener() {  
  20.       public void onClick(View v) {  
  21.         // Button のテキストを設定  
  22.         button1.setText("Clicked!");  
  23.   
  24.         // Button のバックグラウンドのカラーを設定  
  25.         button1.setBackgroundColor(Color.RED);  
  26.       }  
  27.     });  
  28.   
  29.     // Button のバックグラウンドのリソースを設定  
  30.     button2.setBackgroundResource(R.drawable.icon);  
  31.   }  
  32. }  

XMLリソース
  1. <button  
  2.   android:id="@+id/Button"  
  3.   android:layout_height="wrap_content"  
  4.   android:layout_width="wrap_content"  
  5.   android:text="Button">  
  6. </button>  

プログラムを実行すると...


クリック前

クリック後

こんな感じ!

TextView を使ってみた

TextView は
java.lang.Object
  ↳ android.view.View
    ↳ android.widget.TextView
を使用します

というわけで、いろいろと値を指定して TextView をいじってみた

サンプルプログラム
  1. import android.app.Activity;  
  2. import android.graphics.Color;  
  3. import android.os.Bundle;  
  4. import android.widget.TextView;  
  5.   
  6. public class TextViewTest extends Activity {  
  7.   TextView textView1;  
  8.   TextView textView2;  
  9.   TextView textView3;  
  10.   TextView textView4;  
  11.   TextView textView5;  
  12.   @Override  
  13.   public void onCreate(Bundle savedInstanceState) {  
  14.     super.onCreate(savedInstanceState);  
  15.     setContentView(R.layout.textview);  
  16.   
  17.     textView1 = (TextView) findViewById(R.id.TextView01);  
  18.     textView2 = (TextView) findViewById(R.id.TextView02);  
  19.     textView3 = (TextView) findViewById(R.id.TextView03);  
  20.     textView4 = (TextView) findViewById(R.id.TextView04);  
  21.     textView5 = (TextView) findViewById(R.id.TextView05);  
  22.   
  23.     // TextView のテキストを設定  
  24.     textView1.setText("Test");  
  25.   
  26.     // TextView のテキストを取得  
  27.     String text = textView1.getText().toString();  
  28.   
  29.     // TextView のサイズを指定  
  30.     textView2.setTextSize(24);  
  31.   
  32.     // TextView のテキストの色を指定  
  33.     textView3.setTextColor(Color.RED);  
  34.   
  35.     // TextView のバックグラウンドの色を指定  
  36.     textView4.setBackgroundColor(Color.BLUE);  
  37.   
  38.     // TextView のバックグラウンドのリソースを指定  
  39.     textView5.setBackgroundResource(R.drawable.icon);  
  40.   }  
  41. }  

XMLリソース
  1. <textview   
  2.   android:id="@+id/TextView"   
  3.   android:layout_height="wrap_content"  
  4.   android:layout_width="wrap_content"  
  5.   android:text="TextView">  
  6. </textview>  

プログラムを実行すると...


こんな感じ!

Log を表示させてみた

Log の出力

Logクラス
java.lang.Object
  ↳ android.util.Log
を使用する

Log には以下のような種類がある
  • Log.d; DEBUG (デバッグ)
  • Log.e; ERROR (エラー)
  • Log.i; INFO (情報)
  • Log.v; VERBOSE (詳細)
  • Log.w; WARN (警告)
サンプルプログラム
  1. import android.app.Activity;  
  2. import android.os.Bundle;  
  3. import android.util.Log;  
  4.   
  5. public class LogTest extends Activity {  
  6.   private static final String TAG = "LogTest";  
  7.   @Override  
  8.   public void onCreate(Bundle savedInstanceState) {  
  9.     super.onCreate(savedInstanceState);  
  10.     setContentView(R.layout.main);  
  11.   
  12.     // Log の出力  
  13.     Log.d(TAG, "Debug");       // デバッグ  
  14.     Log.e(TAG, "Error");       // エラー  
  15.     Log.i(TAG, "Info");        // 情報  
  16.     Log.v(TAG, "Verbose");     // 詳細  
  17.     Log.w(TAG, "Warn");        // 警告  
  18.   }  
  19. }  
これを実行すると以下のように出力される

 

出力された Log の表示 

[Window] -> [Show View] -> [Other...] を選択
または
左下にある [Show View as a fast view] -> [Other...] を選択

 

[Android] -> [LogCat] を選択し OKボタンを押すと LogCat が表示される

 

スクリーンキャプチャ

Eclipse で Emulator の現在の画面のスクリーンショットを取得する

Emulator を起動させ ScreenShot を撮りたい画面にしておく

[Window] -> [Open Perspective] -> [Other...] を選択
または
Eclipse 画面の右上にある [Open Perspective] をクリックし [Other...] を選択


[DDMS] を選んで [OK] すると DDMS 画面になる


[Devices] の右上にある [Screen Capture] をクリックするとスクリーンショットを撮ってくれる


[Refresh] を押すと再キャプチャ
[Save] を押せば保存できる


これは使えそう!!

Android Project の作成

Hello World Project

Eclipse を開いて
[File] -> [New] -> [Project...] に移動

[Android] -> [Android Project] を選択して [Next]


・Project name
・Build Target
・Application name
・Package name
・Create Activity
・Min SDK Version
を入力して Finish


これで Project は作成完了
今回はプログラムは何もいじらずそのまま実行してみる


[Run] -> [Run Configurations...] に移動

[Android Application] を右クリックして [New] を選択

Androidタブで Project と Launch Action を入力


Targetタブで AVD 選択して Apply


そして、[Run] を押すと...


できた!

一度 [Run Configurations] を設定しておけば、Project のフォルダを右クリックして [Run As] -> [Android Application] から実行できます

Eclipse で Android

Eclipse で Android を開発するための手順

1. Eclipse のインストール
2. Android SDK のインストール
3. Developer Tools のインストール
4. AVD の作成

------------------------------
1.
Eclipse (http://www.eclipse.org/) をダウンロードして解凍し、任意のフォルダに置く

2.
Android SDK (http://developer.android.com/sdk/index.html) をダウンロードして解凍し、任意のフォルダに置く

3.
Eclipseを開いて [Help] -> [Install New Software...] を選択

Addボタンから Name を適当に入力し、Location に
https://dl-ssl.google.com/android/eclipse/
を入力


表示された [Developer Tools] にチェックをいれ [Next] をおしてダウンロード


[Window] -> [Preferences] に移動

[Android] -> [SDK Location]でSDKのある場所を指定する


[Window] -> [Android SDK and AVD Manager] に移動

[Available Packages] から必要なツールにチェックをいれインストールする


4.
引き続き [Android SDK and AVD Manager] の [Virtual Devices] から [New] を選択し適当にAVDを作成


これで準備完了