1、在mainactivity.xml中布局一个ListView
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>
</RelativeLayout>
2、新建一个item.xml用于布局ListView当中每一行的布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/iv_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/tv_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/iv_icon"
android:singleLine="true"
android:ellipsize="end"
android:textSize="15sp"
android:text="本期节目主要内容"
/>
<TextView
android:id="@+id/tv_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/iv_icon"
android:layout_below="@id/tv_title"
android:layout_marginTop="3dp"
android:ellipsize="end"
android:textColor="#999"
android:textSize="12sp"
android:text="水美则鱼肥、土沃则稻香。对于企业而言,优良的营商环境好比阳光雨露,也是市场经济蓬勃发展的必要条件。因此多年来,我国不断采取各种有效措施,致力于优化营商环境,并取得显著成效。本期节目特邀嘉宾进行点评。"
/>
</RelativeLayout>
3、在MainActivity.java当中写适配器
package com.learn.ListView_1;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView lv = (ListView) findViewById(R.id.lv);
lv.setAdapter(new MyAdapter());
}
private class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
// TODO Auto-generated method stub
return 7;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
//想办法将我们自己定义的布局转换成一个view对象就行了
View view;
if(convertView == null){
/*View android.view.View.inflate(Context context, int resource, ViewGroup root)
* Inflate a view from an XML resource.
* 将一个xml转换为view对象
* ViewGroup:五大布局都继承自ViewGroup,ViewGroup可以有自己的孩子(view)
* 这个方法可以把返回的view对象加入到root的布局当中
* */
view = View.inflate(getApplicationContext(), R.layout.item, null);//打气筒
}else{
view = convertView;
}
return view;
}
}
}
4、运行效果
5、补充:常见的获取打气筒的API☆☆☆☆☆
第一种方法:
View view = View.inflate(Context context, int resource, ViewGroup root);
第二种方法:
View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.item, null);
第三种方法(企业中最常用):
LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
View view =inflater.inflate(R.layout.item, null);
其实这些方法效果都是一样的