Change EditTextPreference dialog input text color

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP



Change EditTextPreference dialog input text color



I am able to change the title and summary color of my edit text preference. When you click into it I have the background dark and the buttons white. I still need to figure out how to change the actual value text. Any ideas?



Would be great if I could change the color of that line too.



enter image description here


import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.content.Context;
import android.graphics.Typeface;
import android.preference.EditTextPreference;
import android.support.v4.content.ContextCompat;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.kisnardonline.kisnardonline.GameActivity;
import com.kisnardonline.kisnardonline.R;

@SuppressLint("AppCompatCustomView")
public class FontEditTextPreference extends EditTextPreference
public FontEditTextPreference(Context context)
super(context);


public FontEditTextPreference(Context context, AttributeSet attrs)
super(context, attrs);


public FontEditTextPreference(Context context, AttributeSet attrs, int defStyle)
super(context, attrs, defStyle);


@Override
protected View onCreateView(ViewGroup viewGroup)
Typeface customFont = FontCache.getTypeface("UnderwoodChampionRegular.ttf", GameActivity.commandReceiver.activity_settings);
View v = super.onCreateView(viewGroup);
try
TextView titleView = (TextView) v.findViewById(android.R.id.title);
titleView.setTypeface(customFont);
titleView.setTextColor(ContextCompat.getColor(GameActivity.commandReceiver.activity_settings, R.color.THEME_LIGHT_TEXT));
TextView summaryView = (TextView) v.findViewById(android.R.id.summary);
summaryView.setTypeface(customFont);
summaryView.setTextColor(ContextCompat.getColor(GameActivity.commandReceiver.activity_settings, R.color.THEME_LIGHT_TEXT));
catch (Exception e)
Log.e("jay", "Exception in FontEditTextPreference", e);


return v;


@Override
protected void onPrepareDialogBuilder(AlertDialog.Builder builder)
super.onPrepareDialogBuilder(builder);
builder.getContext().setTheme(R.style.JayPreferenceThemeDialog);




My style is here:


<style name="JayPreferenceThemeDialog" >
<item name="android:colorBackground">@color/THEME_LIGHTER_BACKGROUND</item>
<item name="android:textColor">@android:color/background_light</item>
<item name="android:textColorSecondary">@android:color/background_light</item>
</style>





Use new font resources instead of this old method
– nitinkumarp
Aug 10 at 7:52





Try solution provided here - stackoverflow.com/questions/22585448/…
– Zealous
Aug 10 at 10:03




3 Answers
3


<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/prompt_password"
android:imeActionId="6"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:imeActionLabel="@string/action_sign_in_short"
android:imeOptions="actionUnspecified"
android:inputType="textPassword"
android:maxLines="1"
android:singleLine="true" />

</android.support.design.widget.TextInputLayout>



Try this:


<style name="JayPreferenceThemeDialog" parent="Theme.AppCompat.Light.Dialog">
<item name="colorAccent">@color/colorAccent</item> //line color
<item name="android:colorBackground">@color/THEME_LIGHTER_BACKGROUND</item>
<item name="android:textColor">@android:color/background_light</item>
<item name="android:textColorSecondary">@android:color/background_light</item>
</style>



From the link Zealous shared: Android Theming Preference Dialog


@Override
protected void showDialog(Bundle state)
super.showDialog(state);
Typeface customFont = FontCache.getTypeface("UnderwoodChampionRegular.ttf", GameActivity.commandReceiver.activity_settings);

final Resources res = getContext().getResources();
final Window window = getDialog().getWindow();

// Title
final int titleId = res.getIdentifier("alertTitle", "id", "android");
final View title = window.findViewById(titleId);
if (title != null)
((TextView) title).setTextColor(ContextCompat.getColor(MyCommandReceiver.context_settings, R.color.THEME_LIGHT_TEXT));
((TextView) title).setTypeface(customFont);


// Title divider
final int titleDividerId = res.getIdentifier("titleDivider", "id", "android");
final View titleDivider = window.findViewById(titleDividerId);
if (titleDivider != null)
titleDivider.setBackgroundColor(ContextCompat.getColor(MyCommandReceiver.context_settings, R.color.THEME_LIGHT_TEXT));


// EditText
final View editText = window.findViewById(android.R.id.edit);
if (editText != null)
((EditText) editText).setTextColor(ContextCompat.getColor(MyCommandReceiver.context_settings, R.color.THEME_LIGHT_TEXT));
((EditText) editText).setTypeface(customFont);


//OK button
final View okButton = window.findViewById(android.R.id.button1);
if (okButton != null)
((Button) okButton).setTextColor(ContextCompat.getColor(MyCommandReceiver.context_settings, R.color.THEME_LIGHT_TEXT));
((Button) okButton).setTypeface(customFont);


//Cancel button
final View cancelButton = window.findViewById(android.R.id.button2);
if (cancelButton != null)
((Button) cancelButton).setTextColor(ContextCompat.getColor(MyCommandReceiver.context_settings, R.color.THEME_LIGHT_TEXT));
((Button) cancelButton).setTypeface(customFont);







By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Popular posts from this blog

Firebase Auth - with Email and Password - Check user already registered

Dynamically update html content plain JS

Creating a leaderboard in HTML/JS