2017-07-14 20 views
0

は、自分のアプリのテーマcolorPrimaryが白です。したがって、alertdialogのtextcolorはAndroid Nの下に表示されません。その後、alertdialogのカスタムテーマを作成しますが、まだ動作しません。colorprimaryが白の場合、警告ダイアログのテキストが表示されない

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@android:color/transparent</item> 
    <item name="colorAccent">@color/colorAccent</item> 
    <item name="windowActionModeOverlay">true</item> 
    <item name="android:windowLightStatusBar">true</item> 
    <item name="android:windowAnimationStyle">@style/CustomActivityAnimation</item> 
</style> 

このカスタムアラートダイアログのテーマです。私のダイアログにはarrayadapterがあります。

<style name="AlertDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert"> 
    <item name="android:textColor">#000000</item> 
    <item name="android:textColorPrimary">#000000</item> 
</style> 

私はこのテーマをコードに使用しました。

あなたはアプリとしてその活動へのアラートダイアログのために定義されてきたテーマを設定しようとすることができます
private void showAccountSettingsPopUp(){ 
    AlertDialog.Builder builder; 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { 
     builder = new AlertDialog.Builder(this); 
    } else { 
     builder = new AlertDialog.Builder(this, R.style.AlertDialogTheme); 
    } 
    List<String> stringList = new ArrayList<>(); 
    stringList.add(getString(R.string.blocked_list)); 
    stringList.add(getString(R.string.edit_my_profile)); 
    stringList.add(getString(R.string.delece_acc)); 
    ArrayAdapter<String> adapter = new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_list_item_1, stringList); 
    builder.setAdapter(adapter, new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialogInterface, int i) { 
      switch (i){ 
       case 0: 
        startActivity(new Intent(SettingsActivity.this, BlockedUserActivity.class)); 
        break; 
       case 1: 
        startActivity(new Intent(SettingsActivity.this, EditProfilActivity.class)); 
        break; 
       case 2: 
        showTwoButtonAlert(getString(R.string.are_you_sure), getString(R.string.delete_acc_text), false); 
        break; 
      } 
     } 
    }); 
    builder.show(); 
} 

答えて

0

:例えばpopupTheme を

<style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> 
    <item name="colorAccent">#FFCC00</item> 
    <item name="android:textColorPrimary">@color/theme_color_blue</item> 
    <item name="android:background">#FFF</item> 
</style> 
+0

、これを使用しています。それと同じ結果。私は解決策を見つけた。 – abalta

0

使用スタイルがテーマではありません。これはarrayadapterリスト項目に関連しています。私は色が黒であるtextviewを作成し、それを以下のようにarrayadapter listitemに設定しました。

私はこれが動作しない

ArrayAdapter<String> adapter = new ArrayAdapter<>(getApplicationContext(), R.layout.textview_arrayadapter, stringList); 

代わりの

ArrayAdapter<String> adapter = new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_list_item_1, stringList); 
0

問題のようなXMLで

<LinearLayout 
... 
     app:popupTheme="@style/AlertDialogTheme" 
     app:theme="@style/AppTheme" 
... 
/> 
関連する問題