2014-10-09 20 views
5
Ben bir iletişim özel bir görünüm ile ilgili bir sorun yaşıyorum

ile siyah metin üretir. Oluşturucudaki setView komutunu kullanarak özel bir görünüm paneli ekliyorum.Android AlertDialog 10.</p> <p>benim iletişim inşa etmek <code>AlertDialog.Builder</code> kullanmak android API üzerinde siyah arka plan

Bu, üzerinde çalıştığım API'ların çoğunda çalışır. Stil, cihazdan cihaza bir miktar değişir, ancak bu, cihazın varsayılan ayarına uyması için istediğim şeydir.

Sorunum, API 10'da özel görünümümdeki herhangi bir metnin siyah arka planda siyah olarak gösterilmesidir.

AlertDialog.Builder.setMessage()'u kullanarak eklediğim tüm metinler doğru görünüyor.

Metin görünümünü belirlemek için hangi sihirli özellik/stil iletişim kurucuyu kullanıyor?

Uygulamamın teması Theme.AppCompat.Light.

public Dialog onCreateDialog(Bundle savedInstanceState) { 
    LayoutInflater inflater = getActivity().getLayoutInflater(); 
    final View view = inflater.inflate(R.layout.fragment_status_dialog, null); 
    mStatusTextView = (TextView) view.findViewById(R.id.text_status); 
    mConnectedDeviceTextView = (TextView) view.findViewById(R.id.text_connected_device); 

    MainService.ServiceState state = null; 
    if (getArguments().containsKey(SERVICE_STATUS_ARG_KEY)) { 
     state = (MainService.ServiceState) getArguments().getSerializable(SERVICE_STATUS_ARG_KEY); 
    } 
    setState(state); 

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    builder.setView(view); 
    builder.setMessage("This will show up just fine."); 
    builder.setTitle(getString(R.string.status_title)); 
    builder.setNegativeButton(R.string.dialog_back_button_text, null); 
    builder.setNeutralButton(R.string.dialog_connect_to_text, new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      mListener.onDialogConnectTo(); 
     } 
    }); 
    // Create the AlertDialog object and return it 
    return builder.create(); 
} 

İşte

<?xml version="1.0" encoding="utf-8"?> 

    <RelativeLayout 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:padding="18dp"> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:text="@string/status_starting" 
    android:id="@+id/text_status"/> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:text="@string/status_connected_to_unknown" 
    android:paddingStart="4dp" 
    android:paddingLeft="4dp" 
    android:paddingRight="4dp" 
    android:id="@+id/text_connected_device" 
    android:layout_toRightOf="@+id/text_status" 
    android:layout_toEndOf="@+id/text_status"/> 
    </RelativeLayout> 

Not, ben https://stackoverflow.com/a/24505312/2350083 denedim ama sorunu çözmedi benim fragment_status_dialog düzeni aşağıdaki gibidir:

İşte benim onCreateDialog yöntemdir.

ex

+1

'AlertDialog # setInverseBackgroundForced (true)' öğesini çağırmayı deneyin. –

+0

Alex, bu çözüm benim için çalışıyor gibi görünüyor! Teşekkür ederim! API 10,13,15,19 – Jon

+0

kullanarak cihazlar kadar şimdiye kadar test ettik Bunu duyduğuma sevindim! Bir cevap olarak ekledim. –

cevap

2

Aramayı deneyin AlertDialog#setInverseBackgroundForced(true).

0

Ne basitçe metnin rengini ayarlama hakkında? Örn: Metin Görünümü, aygıtın varsayılan metin rengini (veya uygulamayı) kullanmakta olan TextView'ı kullanmaktadır. Rengi özellikle TextView'e ayarlarsanız, API'den bağımsız olarak cihazlarda geçersiz kılınacaktır.

+1

Farklı API'lerin farklı stilleri vardır. Örneğin, Dell Streak 7 cihazım beyaz bir arka plana sahip tüm iletişim kutularını gösterir. – Jon

İlgili konular