2012-02-17 29 views
19

ICSにはスイッチコンポーネントがあります。それは私たちが必要とするものです。そこに2.2と(と)後方互換性のあるものはありますか?明らかなものは何も見つかりませんでした。下位互換性のあるスイッチ


誰かがこれを建て以下のようになります。あなたがするために必要なもの4.0+デバイス上のスイッチを使用してアプリケーションを作成する場合

https://github.com/Prototik/KFramework-SW.git

+5

リンクはもう – mprabhat

+0

何それらについては動作しません。com/BoD/android-switch-backport –

答えて

10

スイッチは4.0+

上のみですdoは2つのレイアウトを宣言しています。最初のレイアウト-v14はICSデバイスで使用されるものになります。レイアウトフォルダで、CheckBoxを使用します。

コードでは、スイッチまたはチェックボックスからデータを取得/設定するときにCompoundButtonクラスを使用します。 CompoundButtonはこれに対してうまく機能することがわかります。

+0

私はあなたの答えを理解していません。私はフォルダ命名規則を理解しています。私はあなたがCompoundButtonで何を得ているのか分かりません。要約すると、答えは「いいえ」です、正しいですか? –

+1

私はICS上でスイッチを使用するが、Pre IC上ではチェックボックスを使用するコードを持つことができると言っていました。しかし、はい、要するに答えは「いいえ」です。 – Lee

+0

今日の時点では、オープンソースの互換性リソースはありません。私が時間がなくなったら、それを作るかもしれません。本当にそれが動作するように。 –

4

このライブラリには、あなたが探しているものです:https://github.com/BoD/android-switch-backport

+0

もう1つ:http://www.androidviews.net/2012/12/switch-compat/ –

+0

私は最初のものを試しましたが、うまくいきます。コードの品質は向上する可能性があります(javadocはほとんどなく、時には理解しにくく、変更が難しい)。しかし、libは全体的にうまくやっており、完全にテーマにできるスイッチを提供しています。 [Android Holo Colors](http://android-holo-colors.com/)で素晴らしい結果が得られました。 – Snicolas

+0

私は両方を試してみましたが、いくつかのデバイスで深刻な問題を除いて、かなりうまく動作しました。最初にアクティビティをテーマにしてスイッチを組み込んで、テキスト属性の1つが見つからないためにアプリケーションがクラッシュしました。テーマが設定されていないかのように、誰かがこれに直面して解決策を持っていますか? – 3c71

0

holoeverywhereライブラリを使用している場合は、レイアウトファイルで次のように使用できます。

<org.holoeverywhere.widget.Switch 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
/> 
44

Androidのサポートバージョン21.0.0のAppCompatライブラリには、API v7のコンパイルを提供するためにandroid.support.v7.widget.SwitchCompatが含まれています。

compile 'com.android.support:appcompat-v7:21.0.0' 

このようなレイアウトで使用することができます: - であるように思われ

<android.support.v7.widget.SwitchCompat /> 

また、それが簡単にスタイリングするためにshowText属性を持つhttps://developer.android.com/reference/android/support/v7/widget/SwitchCompat.html

はGradleのと、このようにそれを含めますネイティブandriod Switchから欠けている。ここで

+0

それは私のために働く、SwitchCompatは4.x sytle(醜く見えない)5.x 6.x(よく見る)のようなSwitchCompatをスイッチします。 – shuabing

4

はSwitchCompat

あなたbuild.gradle、その後の同期には、この行を追加して確認して最初に行うべきことの一例です。

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.0.0' 
} 

第二のサンプルアクティビティを作成し、私の場合、私はSwitchActivity.javaそれを呼び出します。

public class SwitchActivity extends ActionBarActivity { 

     SwitchCompat mySwitch = null; 


     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_switch); 

      // here is your switch 
      mySwitch = (SwitchCompat)findViewById(R.id.myswitch); 

     } 
     ..... 
} 

は最後に、あなたのレイアウトを作成する私の場合、私はそれactivity_switch.xmlを呼び出します。 https://github.com/yongjhih/SwitchPreferenceCompat https://github.com/ankri/SwitchCompatLibraryます。https:// githubの

<RelativeLayout 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" 
    tools:context="com.neoecosystem.samplex.SwitchActivity"> 

    <android.support.v7.widget.SwitchCompat 
     android:id="@+id/myswitch" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" /> 

</RelativeLayout>