たぼさんの部屋

いちょぼとのんびり

ListView:new ListView(context)+ArrayAdapterで作る

参考:ListViewの基本形とArrayAdapterクラス

package com.efolab;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;

public class Main extends Activity {

	Context c;
	LinearLayout layout;
	
	ListView lv;
	
	private String[] mStrings = { "aaa", "abc", "bbb", "ccc","hoge","moeno","souichiro","yukiko","ore","hahah","hene" };

	@Override
	public void onCreate(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
	
	    c = getApplicationContext();
	    layout = new LinearLayout(c);
	    layout.setOrientation(LinearLayout.VERTICAL);
	    setContentView(layout);
	    
	    lv = new ListView(c);
            lv.setScrollingCacheEnabled(false);	//スクロール時に黒くなるのを防ぐ
	    lv.setBackgroundColor(Color.BLACK);	//背景色を黒指定(しないとすべて白くなって見えない)
	    layout.addView(lv);
	    //引数にmStringをソース指定する
	    ArrayAdapter<String> adapter = new ArrayAdapter<String>(c, android.R.layout.simple_list_item_1,mStrings);
	    lv.setAdapter(adapter);
	}
}

f:id:donsuka_kk:20131002103135p:plain

ArrayAdapterの生成時にソース指定せず、addで要素追記していく場合

	    //ArrayAdapter : 引数にソースを指定しない
	    ArrayAdapter<String> adapter = new ArrayAdapter<String>(context, android.R.layout.simple_list_item_1);
	    //ここからaddで要素をセットしていく
	    for(int i=0;i<mString.length;i++){
	    	adapter.add(mString[i]);
	    }

LayoutInflaterを取得する方法

// コンテキストから取得
LayoutInflater inflater1 = LayoutInflater.from(this);
// アクティビティから取得
LayoutInflater inflater2 = getLayoutInflater();
// システムサービスから取得
LayoutInflater inflater3 = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);