スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Android: リストボックス作成

Androidでとってもポピュラーなリストボックスを表示させる方法です。

1. 以下をレイアウトに追加
    <ListView
        android:id="@+id/listView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
    </ListView>
    
2.以下のxmlファイルを作成(ファイル名はrowitem.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="32dip" android:gravity="center_vertical"/>
3.以下のソースを追加(例えばOnCreateの中に追加)
    String[] datas = {"HT-03A", "Xperia", "NexusOne", "Droid","","","","","","","","",""};
    ArrayAdapter arrayAdapter  = new ArrayAdapter( this, R.layout.rowitem, datas ); *****
    ListView list = (ListView)findViewById( R.id.listView1 );
    list.setAdapter( arrayAdapter );

【注意点1】
上のソースを貼り付けたら、やたらと「*** cannot be resolved to be a type」というエラーが出ます。
こういう場合は、そのエラーメッセージの下に出てくる"解決策一覧”から、"定義のインポート”を選べばOK。
ちなみに、そのエラー箇所を選択して、F2を押しても解決策一覧が出てきます。

【注意点2】
 慣れた人だと当たり前なのかもしれませんが、「3」の*****の部分(this)でコンパイルエラーが出て、とても悩みました。
OnCreate以外に入れ込む場合、thisだとエラーが出ます。例えば、「ボタンを押したらリストに追加」とかしたい場合。

その場合は、以下のような感じです。

public class TestActivity extends Activity {
   private Button btn;
   public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        /*-- ボタンを押したらmbtnに処理を渡す--*/
        /*-- レイアウトでbutton1というIDでボタンを作っておくのをお忘れなく --*/
        this.btn  = (Button) findViewById(R.id.button1);
        this.btn.setOnClickListener(mBtn) ;
   }

    /*-- ボタンを押した時の処理 --*/
    /*-- インポートするとき、"DialogInterfaceの方じゃないよ! --*/
    private OnClickListener mBtn = new OnClickListener() {
@Override
        public void onClick(View v) {
                String[] datas = {"HT-03A", "Xperia", "NexusOne", "Droid","","","","","","","","",""};
         ArrayAdapter arrayAdapter  = new ArrayAdapter(TestActivity.this, R.layout.rowitem, datas );
    ListView list = (ListView)findViewById( R.id.listView1 );
    list.setAdapter( arrayAdapter );
        }
    };
}

という感じです。親のオブジェクト(TestActivity.this)=Windowのオブジェクトを渡さないとダメなんですね。
 
スポンサーサイト

トラックバック

コメント

コメントを残す

Secret



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。