WIFI笔记

来源:互联网 发布:nat端口复用的命令 编辑:程序博客网 时间:2024/05/17 07:51

android源码SettingsPreferenceFragment 实现?

根据结果寻找原因

在setting中有这个preference_widget_wifi_signal.xml,其里面已经定义了该类的UI。

+继承和多态。

++继承就是干掉重复性的工作,减少琐碎的事务,避免冗余性,避免做别人做的工作,吸取别人的经验,从短期来讲是提高效率,节省时间,但是长期来看过程很重要。就像你继承你老爸的家业,财产,行为习惯。 

++多态是满足不同的需求去实现,提高扩展性,应付变化。

class WifiDialog extends AlertDialog implements WifiConfigUiBase {

}

wifi_dialog.xml

public class WifiSettings extends SettingsPreferenceFragment implements DialogInterface.OnClickListener  {

mDialog = new WifiDialog(getActivity(), this, ap, mDlgEdit);

}

+Settings中有很多对话框,而且每个对话框都不一样,怎么办? 那么要定义一个标准,这个标准用接口来体现。它只负责信息的传递和发送。其它不需要关注,它只是桥梁作用。

public class SettingsPreferenceFragment extends PreferenceFragment implements DialogCreatable  {

}

settings_headers.xml

   <!-- Wifi -->
    <header
        android:id="@+id/wifi_settings"
        android:fragment="com.android.settings.wifi.WifiSettings"
        android:title="@string/wifi_settings_title"
        android:icon="@drawable/ic_settings_wireless" />

View onCreateView (){

setup_preference.xml

 <ListView
            android:id="@android:id/list"
            android:layout_width="match_parent"
            android:layout_height="0px"
            android:layout_weight="1"
            android:cacheColorHint="@android:color/transparent"
            android:clipToPadding="false"
            android:drawSelectorOnTop="false"
            android:paddingTop="0dip"
            android:scrollbarAlwaysDrawVerticalTrack="true" />

}


关键点
行为: mWifiManager.connect(config, mConnectListener);
标准:  mConnectListener = new WifiManager.ActionListener() {
                                   public void onSuccess() {
//(1)成功
                                   }
                                   public void onFailure(int reason) {

//(2)失败
                                       Activity activity = getActivity();
                                       if (activity != null) {
                                           Toast.makeText(activity,
                                                R.string.wifi_failed_connect_message,
                                                Toast.LENGTH_SHORT).show();
                                       }
                                   }
                               };



0 0
原创粉丝点击