Android中listview的使用非常多,网上的例子比较多,关于它的使用方法就不详述了,下面来说下自定义的listview。我们平时使用简单的listview时,adapter里只需加载系统的android.R.layout.simple_list_item_1就可以,但是如果遇到改变字体颜色的问题,就需要自定义listview。核心代码只有几行:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.list_item,R.id.textview,list);
直接贴代码:
主Activity代码 MainActivity.java
package jianhui.zhang.listviewtest;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ListView;
import android.widget.ArrayAdapter;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView mListView = (ListView)findViewById(R.id.listview);
List<String> list = new ArrayList<String>();
for(int i = 0; i < 10; i ++){
list.add("string" + i);
}
ArrayAdapter<String> adapter = new new ArrayAdapter<String>(this,R.layout.list_item,R.id.textview, list);
mListView.setAdapter(adapter);
}
}
main.xml
<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<ListView
android:id="@+id/listview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>"
</LinearLayout>
显示效果如下