2013-07-28 2 views
0

Я пытаюсь создать новое оповещение с символом загрузки в приложении для Android. Работает нормально. Ниже мой код.Неверная тема применяется к AlertDialog

super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
LayoutInflater inflater = getLayoutInflater(); 
builder.setView(inflater.inflate(R.layout.custom, null)); 
progress = new ProgressBar(this); 
builder.setMessage("Message"); 
builder.setView(progress); 
//builder.setCancelable(false); 
builder.create().show(); 

Мой custom.xml выглядит

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#ffffff" > 

<ProgressBar xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="32dp" 
      android:layout_height="32dp" 
      android:layout_gravity="center"/> 

</RelativeLayout> 

Мой Рез/styles.xml является

<resources> 

    <!-- 
     Base application theme, dependent on API level. This theme is replaced 
     by AppBaseTheme from res/values-vXX/styles.xml on newer devices. 
    --> 
    <style name="AppBaseTheme" parent="android:Theme.Light"> 
     <!-- 
      Theme customizations available in newer API levels can go in 
      res/values-vXX/styles.xml, while customizations related to 
      backward-compatibility can go here. 
     --> 
    </style> 

    <!-- Application theme. --> 
    <style name="AppTheme" parent="AppBaseTheme"> 
     <!-- All customizations that are NOT specific to a particular API-level can go here. --> 
    </style> 

    <style name="maxWid"> 
     <item name="android:textColor">#000000</item> 

     <item name="android:layout_marginTop">50dp</item> 
     <item name="android:layout_marginBottom">50dp</item> 
     <item name="android:layout_marginLeft">10dp</item> 
    </style> 
    <style name="apBtn"> 
     <item name="android:textColor">#000</item> 
     <item name="android:layout_alignParentLeft">true</item> 
    </style> 

</resources> 

Рез/значения-v11/styles.xml является

<resources> 

    <!-- 
     Base application theme for API 11+. This theme completely replaces 
     AppBaseTheme from res/values/styles.xml on API 11+ devices. 
    --> 
    <style name="AppBaseTheme" parent="android:Theme.Holo.Light"> 
     <!-- API 11 theme customizations can go here. --> 
    </style> 

</resources> 

res/values-v14/styles.xml is

<resources> 

    <!-- 
     Base application theme for API 14+. This theme completely replaces 
     AppBaseTheme from BOTH res/values/styles.xml and 
     res/values-v11/styles.xml on API 14+ devices. 
    --> 
    <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> 
     <!-- API 14 theme customizations can go here. --> 
    </style> 

</resources> 

Моего AndroidManifest.cml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.myapp.kmc" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="16" /> 

    <permission 
     android:name="com.myapp.kmc.permission.C2D_MESSAGE" 
     android:protectionLevel="signature" /> 

    <uses-permission android:name="com.myapp.kmc.permission.C2D_MESSAGE" /> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.myapp.kmc.MainActivity" 
      android:label="@string/app_name" 
      android:theme="@android:style/Theme.NoTitleBar" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.myapp.kmc.LoginActivity" 
      android:label="@string/title_activity_login" 
      android:theme="@android:style/Theme.NoTitleBar" > 
     </activity> 
     <activity 
      android:name="com.myapp.kmc.ListActivity" 
      android:label="@string/title_activity_list" 
      android:theme="@android:style/Theme.NoTitleBar" > 
     </activity> 
     <activity 
      android:name="com.myapp.kmc.CompleteActivity" 
      android:label="@string/title_activity_complete" 
      android:theme="@android:style/Theme.NoTitleBar" > 
     </activity> 

     <receiver 
      android:name="com.google.android.gcm.GCMBroadcastReceiver" 
      android:permission="com.google.android.c2dm.permission.SEND" > 
      <intent-filter> 
       <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
       <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 

       <category android:name="com.myapp.kmc" /> 
      </intent-filter> 
     </receiver> 

     <service android:name="com.myapp.kmc.GCMIntentService" /> 

     <activity 
      android:name="com.myapp.kmc.RegisterDevice" 
      android:theme="@android:style/Theme.NoTitleBar" 
      android:label="@string/title_activity_register_device" > 
     </activity> 
    </application> 

</manifest> 

Тестирование в Android 4.1.2

Но когда я создаю новое приложение и следовать этому коду я получаю окно с предупреждением, как этот

enter image description here

Но когда я реализую тот же код в моем существующем приложении. Я получаю окно с предупреждением, как этот

enter image description here

Так как я хочу первый в моем существующем приложении. Его разрушение моего времени.

Может кто-нибудь, пожалуйста, помогите мне. Я новичок в android Заранее спасибо

+0

проверить с андроидными версиями, темами. первый похож на голографическую тему – Niko

+0

Какое у вас устройство для Android? –

+0

Привет, я проверяю оба приложения в android 4.1.2 – ramesh

ответ

1

Ваше существующее приложение использует Theme.Black, поэтому диалог имеет черный фон. Измените тему на Theme.Holo.Light, чтобы исправить ее.

Рекомендуемый способ сделать это, взглянуть на мой other answer.


EDIT: Похоже, вы подаете правильную тему для вашего <application> тега, но тогда вы перекрывая его, установив Theme.NoTitleBar (который является потомком Theme.Black) к каждому из видов деятельности.

Удалить android:theme атрибут от <activity> теги, и он будет работать. Если вы хотите, чтобы удалить заголовок и панель действий, применять windowNoTitle и windowActionBar атрибуты в определении темы:

<item name="android:windowNoTitle">true</item> 
<item name="android:windowActionBar">false</item> 
+0

привет спасибо за ответ .. Я новичок в этом. Откуда я могу изменить тему? – ramesh

+0

@ramesh ответ, который я связал, подробно объясняет это. –

+0

Я пробовал это, но не работал. Также мой res/styles.xml был обновлен в моем вопросе. Можете ли вы, пожалуйста, посмотреть? – ramesh

0

Если вы хотите использовать Холо тему вы должны установить уровень API 14 (что аппаратное ускорение включено в по умолчанию);

Попробуйте вставить:

<uses-sdk android:minSdkVersion="14" /> 

В вашем AndroidManifest.xml.

Смежные вопросы