您的位置:首页 > 其它

如何打造Listview万能适配器adapter

2016-08-17 14:47 309 查看
传统的ListView适配器仅仅适应一个listview,然而一个项目中可能不止一个listview,那么,对于每一个listview都要重写一个Adapter,如果需要的listview有很多,代码量是很大的。同时,每新增一个,都要重写一个适配器,很不方便。所以我们打造一个万能的适配器极大地减少代码量。下面我简单的介绍一下jar包模式的万能适配器的

首先在这个地址里下载universaladapter.jar         http://download.csdn.net/my
   将下载下来的jar添加到libs中主要代码如下:

创建一个Javaben

public class Bean {
private String name;
private String tel;

public Bean(String name, String tel) {
this.name = name;
this.tel = tel;
}

public String getName() {
return name;
}

public String getTel() {
return tel;
}

public void setName(String name) {
this.name = name;
}

public void setTel(String tel) {
this.tel = tel;
}

@Override
public String toString() {
return "Bean{" +
"name='" + name + '\'' +
", tel='" + tel + '\'' +
'}';
}
}
在activity_main.xml中创建listview

<?xml version="1.0" encoding="utf-8"?>
<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"
android:orientation="vertical"
tools:context="qdym.com.jaradapter.MainActivity">

<ListView
android:id="@+id/lv_name"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Hello World!" />
</LinearLayout>


再在res目录下新建一个item_list.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"
>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:gravity="center"
android:orientation="horizontal"
>
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:layout_marginLeft="-5dp"
android:text="适配器"
/>
<TextView
android:id="@+id/tv_name1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="10sp"
android:layout_marginLeft="20dp"
android:text="111111111111"
/>

</LinearLayout>
</LinearLayout>
创建MyAdapter继承CommonAdapter<Bean>
public class MyAdapter extends CommonAdapter<Bean> {

public MyAdapter(Context context, List<Bean> datas, int layoutId) {
super(context, datas, R.layout.item_listview);
}

@Override
public void convert(ViewHoder hoder, Bean bean) {
hoder.setText(R.id.tv_name, bean.getName()).setText(R.id.tv_name1, bean.getTel());
}
}
MainActivity代码如下:
public class MainActivity extends AppCompatActivity {

private ListView lv_name;
private List<Bean> mlist;
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initview();
initdata();
adapter=new MyAdapter(this, mlist,R.layout.item_listview);

lv_name.setAdapter(adapter);
}
private void initview() {
lv_name=(ListView) findViewById(R.id.lv_name);
}

private void initdata() {
mlist=new ArrayList<Bean>();
for(int i=0;i<10;i++){
Bean b=new Bean("测试数据JAR包模式的万能适配器",i+"======="+i);
mlist.add(b);
}

}
}运行效果如下



a165
详细demo地址    https://github.com/hncszsp312/JarAdapter2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: