您的位置:首页 > 移动开发 > Android开发

ListView控件绑定数据

2015-09-13 23:59 489 查看

1.创建ListView程序对应的布局文件(activity_main.xml)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.helloworldd.MainActivity" >

<ListView
android:id = "@+id/lv";
android:layout_width="match_parent";
android:layout_height = "wrap_content"/>
</LinearLayout>


2.创建Item布局

创建好ListView界面之后接下来需要创建ListView条目,在res/layout目录下创建一个list_item.xml文件,指定Item布局

<?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" >

<TextView
android:id="@+id/tv_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:paddingLeft="10dp"
android:layout_marginLeft="10dp"
android:textSize="18sp"
android:hint="item布局"
/>
</RelativeLayout>


3.编写界面交互代码(MainActivity)

public class MainActivity extends ActionBarActivity {
private ListView listView;
//存放回帖信息,data获取的数据我就不写了,大家可以把data替换成
//其他
List<String> data = new ArrayList<String>();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//绑定控件
listView = (ListView) findViewById(R.id.listView1);
//创建一个Adapter的实例
final MyBaseAdapter mAdapter = new MyBaseAdapter();
//设置Adapter
listView.setAdapter(mAdapter);
}

/*
* 创建一个类继承BaseAdapter
*/
class MyBaseAdapter extends BaseAdapter{

/**
* 得到Item的总数
*/
@Override
public int getCount() {
// TODO Auto-generated method stub
//返回ListView Item条目的总数
return data.size();
}

/**
* 得到Item代表的对象
*/
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
// 返回ListView Item条目代表的对象
return data.get(position);
}

/**
* 得到Item的id
*/
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
//返回ListView Item的id
return position;
}

/**
* 得到Item的View视图
*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
//将List_item.xml文件找出来并转换成View对象
View view = View.inflate(MainActivity.this, R.layout.list_item, null);
//找到list_item.xml中创建的TextView
TextView textView = (TextView) view.findViewById(R.id.tv_list);
textView.setText(data.get(position));
return view;
}
}


上述代码的MyBaseAdapter类,是用来适配数据到ListView的,继承自BaseAdapter并实现了getCount(),getItem(),getItemId(),getView()这4个方法。其中,getView()方法中调用了View.inflate()方法,这个方法的作用是将list_item布局找出来。只有在找出了布局之后,才能调用findViewById()的方法去找到控件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android listview 控件