ListViewの使い方
ListViewにはデータを結びつけてデータを表示させます。
このサンプルでは基本的なListViewの使用方法を紹介します。
import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
//AdapterView.OnItemClickListener
//Viewの宣言
import android.view.View;
//AdapterViewの宣言
import android.widget.AdapterView;
//ArrayAdapterの宣言
import android.widget.ArrayAdapter;
//ListViewの宣言
import android.widget.ListView;
//RelativeLayoutの宣言
import android.widget.RelativeLayout;
//ログ出力の宣言
import android.util.Log;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//座標の初期設定
int x=0;
int y=0;
int width=0;
int height=0;
RelativeLayout layout = new RelativeLayout(this);
setContentView(layout);
// 追加するアイテムを生成する
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this, android.R.layout.simple_list_item_1);
adapter.add("あいてむ 1 index:0");
adapter.add("あいてむ 2 index:1");
adapter.add("あいてむ 3 index:2");
adapter.add("あいてむ 4 index:3");
adapter.add("あいてむ 5 index:4");
adapter.add("あいてむ 6 index:5");
adapter.add("あいてむ 7 index:6");
adapter.add("あいてむ 8 index:7");
adapter.add("あいてむ 9 index:8");
adapter.add("あいてむ 10 index:9");
//配置を設定
x=50;
y=50;
width=350;
height=500;
RelativeLayout.LayoutParams obj1 = getLayoutObject(width, height);
obj1.leftMargin=x;
obj1.topMargin=y;
ListView listview = new ListView(this);
listview.setAdapter(adapter);
listview.setBackgroundColor(Color.argb(70, 239, 193, 196));
layout.addView(listview, obj1);
// アイテムクリック時ののイベントを追加
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent,
View view, int pos, long id) {
// 選択アイテムを取得
ListView listView = (ListView)parent;
String item = (String)listView.getItemAtPosition(pos);
Log.d("インデックス", String.valueOf(pos));
Log.d("選択したアイテム", item);
}
});
}
//レイアウトを決定するオブジェクトを生成し渡します
public RelativeLayout.LayoutParams getLayoutObject(int width, int height)
{
return new RelativeLayout.LayoutParams(width, height);
}
}
|
ArrayAdapterを使ってデータを作りこみます。
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this, android.R.layout.simple_list_item_1);
「simple_list_item_1」はデフォルトで用意されているレイアウトです。
このサンプルではListViewをインスタンス化させ
ArrayAdapterと結びつけるため次のように実装しています。
(例)
listview.setAdapter(adapter);
ListViewをクリックしたときの動作は次のイベントを実装します。
ListViewオブジェクト.setOnItemClickListener(new AdapterView.OnItemClickListener()
アイテムをタップしたときの動作は次のようにします。
public void onItemClick(AdapterView<?> parent,
View view, int pos, long id) {
// 選択アイテムを取得
ListView listView = (ListView)parent;
String item = (String)listView.getItemAtPosition(pos);
インデックスを取得して表示しています
Log.d("インデックス", String.valueOf(pos));
アイテムのデータを取得して表示しています
Log.d("選択したアイテム", item);
}
|
実行結果
一番上をタップしたケース
10-04 08:56:23.510 22159-22159/com.example.test.test8 D/インデックス: 0
10-04 08:56:23.510 22159-22159/com.example.test.test8 D/選択したアイテム: あいてむ 1 index:0
一番下をタップしたケース
10-04 08:56:25.110 22159-22159/com.example.test.test8 D/インデックス: 9
10-04 08:56:25.110 22159-22159/com.example.test.test8 D/選択したアイテム: あいてむ 10 index:9
|
|