android的ListView入門系列一

初步認識ListView

首先,安卓的ListView是用來批量展示信息,並以垂直列表的形式顯示所有列表項.listview是一個組合控件,它本身是一個框和行分隔,用適配器(Adapter)來存放每一行的數據。

listview實現步驟:

1、在佈局文件上面設置一個listview控制

2、創建一個listview的行佈局(通常用RelativeLayout)

3、在Activity裏面查找到listview控件對象。

4、爲listview控件對象設置一個適配器(對象.setAdapter(適配器對象))

5、創建一個適配器對象(通常用的是BaseAdapter)

BaseAdapter adapter = new BaseAdapter() {

//設置listview行佈局和內容

public View getView(int position, View convertView, ViewGroup parent) {

//得到一個佈局轉換器

LayoutInflater layoutInflater = getLayoutInflater();

//通過佈局轉換器把行佈局文件轉換成可用的佈局對象

RelativeLayout inflate =

(RelativeLayout) layoutInflater.inflate(R.layout.list_item, null);

//查找佈局對象裏面存放的控件

TextView textView = (TextView) inflate.findViewById(R.id.textView1);

//獲取行號對應的信息內容

String text = arrayList.get(position);

textView.setText(text );

return inflate;

}

//決定listview的行數

public int getCount() {

return arrayList.size();

}

};

注意:getView()方法調用:界面上每出現一行就調用一次getview();

getCount() 第一次調用在getview之前

注意:listview的高度不能設置成wrap_content。可以指定高度XXdp或者設置長match_praent

以下是簡單的listview例子,完整的源代碼常見附件:

public class MainActivity extends Activity implements OnClickListener{


private ArrayList<String> arrayList = new ArrayList<String>();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

for (int i = 0; i < 30; i++) {

arrayList.add("title" + i);

}

ListView listView = (ListView) findViewById(R.id.listView1);

BaseAdapter adapter = new BaseAdapter() {

@Override

public View getView(int position, View convertView, ViewGroup parent) {


LayoutInflater layoutInflater = getLayoutInflater();

RelativeLayout inflate =

(RelativeLayout) layoutInflater.inflate(R.layout.list_item, null);

TextView textView = (TextView) inflate.findViewById(R.id.textView1);

String text = arrayList.get(position);

textView.setText(text );

Log.e("getView()", "getView:" + position + "RelativeLayout:" + inflate);

return inflate;

}


public int getCount() {

Log.e("getCount()", "getCount");

return arrayList.size();

}

public long getItemId(int position) {

return 0;

}

public Object getItem(int position) {

return null;

}

};


listView.setAdapter(adapter );

}


@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}


@Override

public void onClick(View v) {

}


private void btn2OnClick() {

// TODO Auto-generated method stub

}


private void btn1OnClick() {

}


}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章