砂漠で野菜漬けてる合間暇だから。
解読?メモするつもりで初めまして。Java無知だから初めまして。
クラスやインターフェイスをグループ化するためのしくみ。クラスの先頭で「package」と宣言することで、そのクラスが分類されるパッケージを指定することができる。パッケージは階層を作成することができ、複数の階層から成るパッケージの場合は、階層の上から順に「.」でパッケージ名を連結します。
本来、クラスを一意に特定するためには、完全修飾名で記述しなければなりません。しかし、to.java.code.sample.basic.Animalのような名前を毎回記述するのは面倒です。あらかじめ利用するパッケージをインポート(import)しておくことで、コード内ではパッケージを省略して記述できるようになります。import命令は、一般的にpackage宣言の直後に記述します。
import com.example.mynavi.object.Animal;
Animal a = new Animal();
com.example.mynavi.object.Animal a = new com.example.mynavi.objectAnimal();
データの一覧をリストなどのビューに渡すために使用されるクラス。クラス図は次のようになっている。
java.lang.Object
L android.widget.BaseAdapter
L android.widget.ArrayAdapter
つまりArrayAdapterクラスはBaseAdapterクラスのサブクラス。 ArrayAdapterクラスを利用するにはコンストラクタを使ってArrayAdapterクラスのオブジェクトを作成する。コンストラクタは3つ用意されているが、次を例とする。
ArrayAdapter(Context context, int resource, T[] objects)
ここでは任意のオブジェクトの配列を使ってデータを管理する。
引数1:「Context」クラスのオブジェクトを指定
引数2:リソースとして登録された「TextView」に対するリソースIDを指定
引数3:保持するデータの一覧を表すオブジェクトの配列を指定
private String[] data = {"Apple", "Lemon", "Orange"};
@Override public void onCreate(Bundle icicle) {
super.onCreate(icicle);
ArrayAdapter<String> arrayAdapter
= new ArrayAdapter<String>(this, R.layout.rowtext, data);
}
3.1 Stringクラスの配列として用意されたデータを使ってArrayAdapterクラスのオブジェクトを作成する手順
String[] data = {"Apple", "Lemon", "Orange", "Strawberry"};
1番目の引数に表示するBitmapクラスのオブジェクトを指定する。(今回はスルー)
データを表示する時に使用されるTextViewをレイアウトXMLファイルとして定義。
今回「Test02_01」と言うプロジェクトを作成し、プロジェクト内の「res/layout」内に「rowdata.xml」と言うファイルを作成 。ファイルの中身は以下
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
これらを用いてサンプルプログラムを作成すると以下のようになる。
String[] data = {"Apple", "Lemon", "Orange", "Strawberry"};
ArrayAdapter<String> arrayAdapter
= new ArrayAdapter<String>(this, R.layout.rowdata, data);
package jp.javadrive.android;
import android.app.Activity;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.ArrayAdapter;
public class Test02_01 extends Activity
{
private final int FP = ViewGroup.LayoutParams.FILL_PARENT;
private final int WC = ViewGroup.LayoutParams.WRAP_CONTENT;
private String[] data = {"Apple", "Lemon", "Orange", "Strawberry"};
@Override protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
LinearLayout linearLayout = new LinearLayout(this);
linearLayout.setOrientation(LinearLayout.HORIZONTAL);
setContentView(linearLayout);
ListView list = new ListView(this);
linearLayout.addView(list, createParam(WC, WC));
ArrayAdapter<String> arrayAdapter
= new ArrayAdapter<String>(this, R.layout.rowdata, data);
list.setAdapter(arrayAdapter);
}
private LinearLayout.LayoutParams createParam(int w, int h){
return new LinearLayout.LayoutParams(w, h);
}
}