我们都知道设置中的设置项界面都是使用PreferenceActivity 来实现的,它是一个非常好用又方便的组件,但是有时候总会有一些奇怪的要求,我的这个是要求将settings中的WifidisplayActivity转化成自己写的Activity,因为用PreferenceActivity的布局是固定的不能添加自己想要的布局,有需求就的实现,谁叫我们是码代码的。
首先看界面:
界面非常的简单就是一个列表,显示可以连接的设备。列表项也非常简单,一个设备名称、一个状态,一个图标
第二,看源码,看了源码之后发现只有一个类WifidisplayActivity .class,心里轻松了一下,看了源码发现它主要有三种状态,一种是第一次连接,一种是二次连接,另一种是设备没有打开wifiDisplay连接,看了界面的代码发现它是通过 preferenceScreen.addPreference(createRoutePreference(route));来添加搜索设备的列表的选项,我们肯定不能通过该发式,通过一系列的尝试,我确定了整体的思路,实现创建一个适配器用于更新列表状态的改变,再创建一个实体类来保存设备的名称,状态等信息,第三个就是ListView的点击事件。
实体类:
适配器:
public class MyAdapter extends BaseAdapter{
private ViewHolder holder;
private Context mContext;
@Override
public int getCount() {
// TODO Auto-generated method stub
return wifiDevices.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public