首页 > 代码库 > ListView的使用
ListView的使用
创建的方法:
1.XML中定义数组(在res->arrays新建XML
第一步:<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="books">
<item>今日事今日必</item>
<item>从现在起航</item>
<item>世上无小事</item>
</string-array>
</resources>
第二步:在主XML中指定文件
<ListView
android:id="@+id/list1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/books"
android:divider="#ff0000"
android:dividerHeight="2px"/>
2.1通过ArrayAdapter实现
第一步:新建XML
<?xml version="1.0" encoding="UTF-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="24sp"
android:padding="10px"
android:shadowColor="#00f"(阴影字体颜色)
android:shadowDx="10"(阴影字体偏移的X坐标)
android:shadowDy="10"(阴影字体偏移的Y坐标)
android:shadowRadius="1">(阴影字体的扩大范围,为1显示正常,大于1时显示模糊)
</TextView>
第二步:layout界面XML中增加ListView
第三步:java程序中增加
ListView list2 = (ListView)findViewById(R.id.list2);
String arrList2[]={"字符床","徐国强","生日快乐"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.arraylist, arrList2);
list2.setAdapter(adapter);
2.2,修改2.1中XML代码
<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/TextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="24dp"
android:checkMark="@drawable/ok"(增加的图片)
android:shadowColor="#f0f"
android:shadowDx="4"
android:shadowDy="4"
android:shadowRadius="2"/>
3.继承ListActivity实现
不需要:setContentView(R.layout.activity_main);
添加:
String arrList2[]={"字符床","徐国强","生日快乐"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, arrList2);
setListAdapter(adapter);
4.通过simpleAdapter实现(可以实现复杂的listView)
第一步:主XML中添加
<ListView
android:id="@+id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:divider="#ff0000"
android:dividerHeight="2px"
/>
第二步:新建XML中增加的是(每一行中要显示的内容)
<LinearLayout 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="com.example.xgwlistview.MainActivity" >
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_parent"
android:orientation="vertical">
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20dp"
android:textColor="#f00"
android:paddingLeft="10dp"/>
<TextView
android:id="@+id/attr"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:textSize="15dp"/>
</LinearLayout>
</LinearLayout>
第三步:java中增加代码:
String[] name={"李清照","徐国强","周杰伦","高虎"};
String[] attrname={"他是一代诗人","会成功","歌手","扮演青面兽杨志"};
int image[] = {R.drawable.libai,R.drawable.nongyu,R.drawable.qingzhao,
R.drawable.tiger};
List<Map<String,Object>> listItem = new ArrayList<Map<String,Object>>();
for(int i=0;i<name.length;i++){
Map<String,Object> item = new HashMap<String,Object>();
item.put("Image",image[i]);
item.put("name",name[i]);
item.put("attrname", attrname[i]);
listItem.add(item);
}
SimpleAdapter adapter = new SimpleAdapter(this, listItem, R.layout.listview,
new String[]{"Image","name","attrname"},
new int[]{R.id.image,R.id.name,R.id.attr});
ListView list = (ListView)findViewById(R.id.list);
list.setAdapter(adapter);
list.setOnItemClickListener();
list.setOnItemSelectedListener();
5.通过继承BaseAdapter实现功能
BaseAdapter base = new BaseAdapter()
{
@Override
public int getCount() {
// TODO Auto-generated method stub
return 10;
}
@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 position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
LinearLayout line = new LinearLayout(MainActivity.this);
line.setOrientation(0);
ImageView image1 = new ImageView(MainActivity.this);
image1.setImageResource(R.drawable.libai);
TextView text = new TextView(MainActivity.this);
text.setText("第"+(position+1)+"行");
text.setTextColor(Color.BLUE);
text.setTextSize(20);
line.addView(image1);
line.addView(text);
return line;
}
};
mylist.setAdapter(base);
6.自动填充单元格
第一步:XML中定义
<AutoCompleteTextView
android:id="@+id/auto"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:completionHint="请选择你喜欢的人物"
android:dropDownHorizontalOffset="10dp"
android:completionThreshold="2"/>(数字代表多少个字就会有提示)
<MultiAutoCompleteTextView
android:id="@+id/multiauto"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:completionThreshold="2"/>
第二步:java中定义
AutoCompleteTextView auto;
MultiAutoCompleteTextView multi;
ArrayAdapter<String> aa= new ArrayAdapter<String(this,android.R.layout.simple_dropdown_item_1line,name);
auto = (AutoCompleteTextView)findViewById(R.id.auto);
auto.setAdapter(aa);
multi = (MultiAutoCompleteTextView)findViewById(R.id.multiauto);
multi.setAdapter(aa);
multi.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
ListView的使用