Listview の使い方2 1行に2列表示 ///追加 複数表示 ボタン設置 選択したpositionを記憶
選択したpositionを記憶
------------------------------------lv表示時
lv.setAdapter(adapter);
if(position_setting_flg == 1){
lv.setSelectionFromTop(ima_pos, ima_y);
position_setting_flg = 0;
}
---------------------------------------------処理側
ima_pos = lv.getFirstVisiblePosition();
ima_y = 0;
if (lv.getChildCount() > 0) {
ima_y = lv.getChildAt(0).getTop();
}
Book book = adapter.getItem(wwwpos);
int OLD_E0_5 = E0_5;
Intent intent = new Intent(MainActivity.this,AccentselectActivity.class);
intent.putExtra("E0_5", E0_5);
position_setting_flg = 1;
accent_change_flg = 1;
dl.dismiss();
ANIM_CTRL = 0;
startActivityForResult(intent,777);
LISTVIEW ボタン設置
XMLに!!
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:descendantFocusability="blocksDescendants"
>
ADAPTER内で!!
//----------------------------------クリック リスナー
//liner_hedit.setClickable(true);
l_hiduke.setClickable(true);
// クリックイベントのリスナーをセット
// liner_hedit.setOnClickListener(new View.OnClickListener() {
l_hiduke.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
クリックされた時の処理
}
} ); //クリックリスナーここまで---------------------------
listview 罫線
android:divider="#000000"
android:dividerHeight="2sp"
これで色と太さが変わります。
// 登録されている内容をすべて消す
this.adapter.clear();
// ListViewに通知する
this.adapter.notifyDataSetChanged();
listview の 1行のレイアウト listcell を作る。
中身は、1行に2個のtextviewを配置。
mapを使うのと、アダプターの引数セット方法がミソ。
List<Map<String, String>> seanlist = new ArrayList<Map<String, String>>();
for( i = 0; i < numRows; i++ ){
Map<String, String> conMap = new HashMap<String, String>();
conMap.put("list_narabi","" + snotb[i]);
conMap.put("list_sname", entries[i]);
seanlist.add(conMap);
}
ListView lv = (ListView) findViewById(R.id.listView1);
SimpleAdapter adapter =
new SimpleAdapter(this, seanlist, R.layout.listcell,
new String {"list_narabi", "list_sname"},
new int {R.id.textView2, R.id.textView1,}) ;
lv.setAdapter(adapter);
//////////////////////////////////////////////
追加
複数表示
List<Map<String, String>> dkoumoku = new ArrayList<Map<String, String>>();
//for( i = 0; i < numRows; i++ ){
Map<String, String> data = new HashMap<String, String>();
data = new HashMap<String, String>();
data.put("diano","" + 555);
data.put("sta_time", "12:59");
data.put("end_time", "20:49");
data.put("yotei1", "朝");
data.put("yotei2", "夜12じから");
dkoumoku.add(data);
data = new HashMap<String, String>();
data.put("diano","" + 666);
data.put("sta_time", "12:59");
data.put("end_time", "20:49");
data.put("yotei1", "朝");
data.put("yotei2", "夜12じから");
dkoumoku.add(data);
data = new HashMap<String, String>();
data.put("diano","" + 777);
data.put("sta_time", "12:59");
data.put("end_time", "20:49");
data.put("yotei1", "朝");
data.put("yotei2", "夜1じから");
dkoumoku.add(data);
// }
ListView lv = (ListView) findViewById(R.id.listView1);
SimpleAdapter adapter =
new SimpleAdapter(this, dkoumoku, R.layout.mlist_cell,
new String {"diano", "sta_time","end_time","yotei1","yotei2"},
new int {R.id.textView1, R.id.textView2,R.id.textView9,R.id.textView7,R.id.textView6}) ;
lv.setAdapter(adapter);