web-dev-qa-db-ja.com

EditTextの下線の色を変更する

このスレッド。 を使用して、EditTextの下線の色を変更しようとしました。

私も同じことをしました-これはEditTextAndroid:background として設定され @drawable/edt_bg_selector

<EditText
         Android:layout_width="wrap_content"
         Android:layout_height="wrap_content"
         Android:ems="10"
         Android:id="@+id/editText4"
         Android:layout_weight="1"
         Android:elevation="0dp"
         Android:background="@drawable/edt_bg_selector" />

僕の edt_bg_selector

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item Android:state_focused="true" Android:drawable="@drawable/edt_bg_selected" />
    <item Android:state_focused="false" Android:drawable="@drawable/edt_bg_normal" />
</selector>

... edt_bg_normal.xml.。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" >
    <item
        Android:bottom="1dp"
        Android:left="-2dp"
        Android:right="-2dp"
        Android:top="-2dp">
        <shape Android:shape="rectangle" >
            <stroke
                Android:width="1px"
                Android:color="@color/colorWhite" />

            <solid Android:color="#00FFFFFF" />

            <padding
                Android:bottom="5dp"
                Android:left="5dp"
                Android:right="5dp"
                Android:top="5dp" />
        </shape>
    </item>
</layer-list>

...そして最後にedt_bg_selected.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" >
    <item
        Android:bottom="1dp"
        Android:left="-2dp"
        Android:right="-2dp"
        Android:top="-2dp">
        <shape Android:shape="rectangle" >
            <stroke
                Android:width="1px"
                Android:color="@color/colorWhite" />

            <solid Android:color="#00FFFFFF" />

            <padding
                Android:bottom="5dp"
                Android:left="5dp"
                Android:right="5dp"
                Android:top="5dp" />
        </shape>
    </item>
</layer-list>

このコードを使用すると、Android Studioのデザインエディターで下線の色が白に変わったことがわかります。しかし、このプロジェクトをAndroidデバイスで実行すると、変更は行われていません。選択されたEditTextの下線は私のprimaryColorであり、選択されていないEditTextは黒です。

Android Studioデザインエディター:

Android studio design editor

プロジェクトはAndroidデバイス:

Android device

これは、アプリケーションの選択したテーマと関係がありますか?または私は何を逃したのですか?

8
MoOoG
<EditText
    Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:hint="Something or Other"
            Android:backgroundTint="@Android:color/holo_green_light" />

注:APレベル21以降でのみ機能します。

9
vinod

次の属性をアクティビティテーマに追加します。

<style name="AppTheme" parent="Theme.AppCompat">
    <item name="colorControlNormal">@Android:color/white</item>
    <item name="colorControlActivated">@Android:color/white</item>
    <item name="colorControlHighlight">@Android:color/white</item>
</style>
6
Nika Kurdadze

プログラムで次の行を実装するだけです。

inputText.getBackground().setColorFilter(ContextCompat.getColor(this, R.color.error), PorterDuff.Mode.SRC_ATOP);

inputTextEditTextオブジェクトです。

2
Vipul Asri

わかりました。何が起こったのかわかりませんが、上記で投稿したコードは機能します。何も変更していませんが、Androidスタジオを再起動しました。

これを投稿する前に、[ビルド]> [プロジェクトの再構築]でプロジェクトの再構築を行いましたが、役に立ちませんでした。

なぜこれが起こったのか、この場合どうすればいいのかを誰かが説明できればありがたいのですが、問題は解決しました。

0
MoOoG