listview是view的一种,同样也是activity的一种。今天介绍最简单的实现方式,使用arrayadapter来实现数据绑定。
效果图:
如上图所示,每一行都是listview的一个单元,而其中布局实现是用Textview来达到的,所以操作listview每一行的样式可以通过修改Textview样式。
并且listview的布局文件是特殊的布局只有一个布局控件(效果图就是用一个Textview)来实现的,如果感到费解请看布局文件。
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/u_tv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textColor="#DC143C"
android:textSize="24dip"
android:background="#000000"
>
</TextView>
请注意整个布局文件只用一个TextView控件。
那么来看一下代码:
package com.example.listview1;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//新建一个listview控件的对象
ListView listview=new ListView(this);
//此处实现了listview的数据绑定,使用适配器将数据添加到控件
//arrayadapter的参数分别为:1.当前activity的context 2.TextView所在的布局文件 3.要绑定的数据。
listview.setAdapter(new ArrayAdapter(this,R.layout.user,new String [] {"hehe1","hehe2","hehe3"}));
//此处布局是咱们的listview而非布局文件,请注意。
setContentView(listview);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}