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() {

}


}


你可能感兴趣的:(listView系列)