android開關控制項
㈠ switchermod怎麼用
Switchermod 的使用並未在提供的參考信息中明確說明,因為「Switchermod」並不是一個標準的 Android 開發術語或組件。不過,從問題中可以推測,你可能是在詢問如何使用 Android 中的 Switch 組件,或者是想了解如何修改與開關相關的功能。以下是根據 Switch 組件的一般使用方法和屬性進行的解答:
Switch 組件的基本使用布局文件中添加 Switch:
- 在 XML 布局文件中,使用 <Switch> 標簽來添加開關控制項。
- 設置必要的屬性,如 id、layout_width、layout_height、checked等。
在代碼中操作 Switch:
- 在 Activity 或 Fragment 的代碼中,通過 findViewById 方法找到 Switch 控制項的實例。
- 使用 setOnCheckedChangeListener 方法為 Switch 設置監聽器,以處理開關狀態變化時的邏輯。
修改 Switch 的屬性:
- 可以通過代碼動態修改 Switch 的屬性,如 setChecked 來改變開關狀態。
- 還可以設置 Switch 的外觀屬性,如 thumb、track的 Drawable,以及它們的 Tint 和 TintMode。
- android:showText:是否顯示開關狀態的文本。
- android:splitTrack:是否將軌道分割,為滑塊留出空間。
- android:switchMinWidth:開關組件的最小寬度。
- android:switchPadding:開關和文本之間的最小間距。
- android:thumb:開關滑塊的 Drawable。
- android:thumbTint 和 android:thumbTintMode:滑塊的顏色和混合模式。
- android:track:開關軌道的 Drawable。
- android:trackTint 和 android:trackTintMode:軌道的顏色和混合模式。
- 版本兼容性:某些屬性或方法可能在不同的 Android 版本上表現不同。例如,某些屬性可能在 Android 8.0及以上版本才可用。
- 屬性與方法的對應關系:一般來說,XML 布局文件中設置的屬性都有對應的 set 和 get 方法,可以在代碼中動態修改這些屬性。
- 如果你是在詢問如何使用 Switch 組件,上述內容已經提供了基本的使用方法和常用屬性。
- 如果你是想了解如何修改與開關相關的功能,這通常涉及到對 Switch 組件的自定義,包括修改其外觀、行為或添加額外的功能。這可能需要深入了解 Android 自定義控制項的開發。
㈡ android action cancel 何時觸發
對於這個問題,android文檔的說明很簡短,想看明白很難。國外一網頁說的還比較詳細,寫在這里分享給大家:
原文是這樣的:
You receive this when a parent takes possession of the motion, for example when the user has dragged enough across a list view or scroll view that it will start scrolling instead of letting you press the buttons inside of it.
意思是這樣的:
當你的手指(或者其它)移動屏幕的時候會觸發這個事件,比如當你的手指在屏幕上拖動一個listView或者一個ScrollView而不是去按上面的按鈕時會觸發這個事件。
在設計設置頁面的滑動開關時,如果不監聽ACTION_CANCEL,在滑動到中間時,如果你手指上下移動,就是移動到開關控制項之外,則此時會觸發ACTION_CANCEL,而不是ACTION_UP,造成開關的按鈕停頓在中間位置。
意思就是,當用戶保持按下操作,並從你的控制項轉移到外層控制項時,會觸發ACTION_CANCEL,建議進行處理~
當前的手勢被中斷,不會再接收到關於它的記錄。
推薦將這個事件作為 ACTION_UP 來看待,但是要區別於普通的 ACTION_UP
話說回來,平常還真碰不到這個事件,習慣上就直接當 ACTION_UP 處理了就
㈢ 如何綁定android點擊事件
綁定Android點擊事件有三種方式:
一、匿名內部類
1、通過資源ID找到對應的Android控制項,比如R.id.button1
Button button1 = (Button)findViewById(R.id.button1);
2、調用setOnClickListener方法,將點擊事件與之綁定
button1.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
//這里放點擊事件的邏輯
}
});
二、XML申明式
1、在對應的布局文件中添加一個按鈕,即Button
2、在Button中添加 onClick="foo()" 屬性
3、在對應的Activity中編寫對應的foo()方法,如下:
public void foo(View v){
//這里放點擊事件的邏輯
//這里的 " v " 是指當前組件,就是你點擊的這個按鈕
}
三、統一處理式
1、使對應的Activity類實現View.OnClickListener 介面,也就是這樣寫:
public class xxActivity implement View.OnClickListener {
2、在方法中重載onClick(View v)方法
public void onClick(View v){
3、通過 v.getId() 來判斷,來源是哪一個按鈕,這里可以放一個switch開關語句,來進行邏輯的分工。
}
}
純手打,希望上文能對你起到一定的輔助作用。
㈣ 怎樣在源代碼中修改android系統的屏幕默認
1、首先解決【設置】界面默認顯示【開發者選項】的問題
查看源代碼:packages/apps/Settings/src/com/android/settings/SettingsActivity.java
在updateTilesList(Listtarget)方法中,可以找到【開發者選項】相關的代碼:
else if (id == R.id.development_settings) {Log.d(LOG_TAG, =================oyp K=+showDev);if (!showDev || um.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES)) {removeTile = true;}}
其中showDev變數定義在該方法最開始處
因此要想特定客戶直接顯示【開發者選項】,則將showDev的值改變即可,代碼如下:
即在初始化showDev變數之前,將DevelopmentSettings.PREF_SHOW的值設置為true,那麼showDev也會是true。這樣【開發者選項】就會默認打開。那個判斷是J5客戶的方法在/frameworks/base/core/java/android/os/SystemProperties.java中定義
因為這個添加的代碼是在SecuritySettings的createPreferenceHierarchy()方法中,也就是說要進入到該Activity才生效。這樣明顯沒達到目的。
因此要和設置【USB調試】一樣,在一個接收開機廣播的廣播接收者中將Settings.Global.INSTALL_NON_MARKET_APPS設置為1。
4、找Settings裡面定義的一個接收開機廣播的廣播接收者,在AndroidManifest.xml中找到一個,當然你也可以自己定義一個這樣的廣播接收者。
<!-- Restore Rotation Receiver --><receiver android:name="com.mediatek.settings.RestoreRotationReceiver"><intent-filter></action></action></intent-filter></receiver>
因此在packages/apps/Settings/src/com/mediatek/settings/RestoreRotationReceiver.java的onReceive(Context context, Intent intent)方法中加入以下代碼:
而一開始添加的代碼可以注釋掉了。通過git diff可以看出來
diff --git a/packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java b/packages/apps/Settings/src/com/android/settings/Develindex 0a987df..503270a 100755--- a/packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java+++ b/packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java@@ -508,15 +508,9 @@ public class DevelopmentSettings extends Context context = getActivity();final ContentResolver cr = context.getContentResolver();mHaveDebugSettings = false;-/// M: CR ALPS00244115. Lock and unlock screen, the USB debugging is unchecked.boolean isChecked = (mAdbDialog != null && mAdbDialog.isShowing()) ? true :(Settings.Global.getInt(cr, Settings.Global.ADB_ENABLED, 0) != 0);- //added by ouyang 2015-11-10 set mEnableAdb=true if model is J5- if (android.os.SystemProperties.isJ5Version()) {- isChecked=true;- }- //added by ouyang 2015-11-10 enpdateSwitchPreference(mEnableAdb, isChecked);/// M: update usb preference againmExt.customUSBPreference(mEnableAdb);diff --git a/packages/apps/Settings/src/com/android/settings/SecuritySettings.java b/packages/apps/Settings/src/com/android/settings/Securityindex 4de173a..392e6ee 100755--- a/packages/apps/Settings/src/com/android/settings/SecuritySettings.java+++ b/packages/apps/Settings/src/com/android/settings/SecuritySettings.java@@ -402,14 +402,7 @@ public class SecuritySettings extends .findPreference(KEY_DEVICE_ADMIN_CATEGORY);mToggleAppInstallation = (SwitchPreference) findPreference(KEY_TOGGLE_INSTALL_APPLICATIONS);-- //added by ouyang 2015-11-10 setChecked(true) if the model is J5- if (android.os.SystemProperties.isJ5Version()) {- setNonMarketAppsAllowed(true);- }mToggleAppInstallation.setChecked(isNonMarketAppsAllowed());- //added by ouyang 2015-11-10 end-// Side loading of apps.// Disable for restricted profiles. For others, check if policy disallows it.mToggleAppInstallation.setEnabled(!um.getUserInfo(UserHandle.myUserId()).isRestricted());
這樣改為後,編譯,刷機後,插上USB數據線就可以開始進行adb調試了,而且可以直接安裝未知來源的apk了。
㈤ androidswitch設置最小長度無效
不在范圍。androidswitch是Android自帶的開關控制項,而在Android工具中設置switch最小長度無效,那是因為設置的數字並不在范圍內,因此就導致是無效的。