listview 自定义Adapter

一般使用listview可以使用ArrayAdapter,simpleAdapter,也可以自定义Adapter

现在使用自定义的Adapter:

值:这里使用数组,当然也可以使用list集合

mValue=new String[]{convertToGender(getGender()),getBirthday(),getSignature()};

键:数组
 mSetKey=this.getResources().getStringArray(R.array.person_profile_set_key);

class ListItemAdapter extends BaseAdapter{

  @Override
  public int getCount() {
   // TODO Auto-generated method stub
   return mSetKey.length;
  }

  @Override
  public Object getItem(int position) {
   // TODO Auto-generated method stub
   return position;
  }

  @Override
  public long getItemId(int position) {
   // TODO Auto-generated method stub
   return position;
  }

获取每一项的view(行)的逻辑处理,使用软键盘的时候会重新刷新一下,其他的会不会,可以试一下,使用log日志查看一下

如果listview数据需要更新,千万要记得更新数组mValue,否则不会更新的

  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
   // TODO Auto-generated method stub
   LinearLayout layout=(LinearLayout)mInflater.inflate(R.layout.personal_profile_listitem,null);
   TextView title=(TextView)layout.findViewById(R.id.personal_profile_listitem_title);
   title.setText(mSetKey[position]);
   TextView body=(TextView)layout.findViewById(R.id.personal_profile_listitem_body);
   body.setText(mValue[position]);
   return layout;
  }
 }

xml文件:

person_profile_listitem.xml

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="horizontal"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
>
 <TextView
  android:id="@+id/personal_profile_listitem_title"
  android:layout_width="100px"
  android:layout_height="80px"
  android:layout_marginLeft="20px"
  android:gravity="center"
  android:textSize="16dip"
 />
 <TextView
  android:id="@+id/personal_profile_listitem_body"
  android:layout_width="180px"
  android:layout_marginRight="20px"
  android:layout_height="80px"
 />
</LinearLayout>

main.xml文件

 <ListView android:id="@android:id/list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:cacheColorHint="#00000000"
            android:divider="@drawable/line"
            android:listSelector="@drawable/selectitem"
            android:drawSelectorOnTop="false">
        </ListView>

使用系统预定义的listview,这时候Activity继承listactivity

当然也可以自己定义

 <ListView android:id="@+id/list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:cacheColorHint="#00000000"
            android:divider="@drawable/line"
            android:listSelector="@drawable/selectitem"
            android:drawSelectorOnTop="false">
        </ListView>

这时Acitivity不继承listactivity

你可能感兴趣的:(listview 自定义Adapter)