2013-05-16 13 views
10

Android 2.3.3指定された名前と一致するリソースが見つかりませんでした。Theme.Sherlock.Dialog

私はSOを検索しましたが、解を理解できませんでした。誰かがこのエラーを取り除く方法について簡単な方法で説明できる場合は、私は感謝します。

私は自分のアプリケーションでActionBarSherlockを使用しています。私の基本テーマ、Theme.Sherlock.Lightは、すべてのアクティビティでうまく動作します。 1つのアクティビティでは、アクティビティがダイアログのように見えるようにしたいので、Theme.Sherlock.Dialogを使いたかったのです。

ここに私のマニフェストファイルの宣言があります。

<activity 
    android:name="com.xxx.xx.x.Activity" 
    android:theme="@style/Theme.Sherlock.Dialog" > 
</activity> 

私のXMLには次のエラーが表示されます。error: Error: No resource found that matches the given name (at 'theme' with value '@style/Theme.Sherlock.Dialog').なぜ私はこれを取得していますか?これを取り除くにはどうすればよいですか? ActionBarSherlockで

答えて

29

ダイアログテーマは4ヶ月以上前JakeWhartonにより除去しました。

https://github.com/JakeWharton/ActionBarSherlock/commit/601bde214b56b8fad0b4fc5aaed5af0b531b6135

だけ@android:style/Theme.Dialogを使用してActivity代わりのSherlockActivityを拡張します。 ActionBarSherlockはダイアログのために何もしませんし、あなたがそのテーマを使用していない場合は、ただ文句を言います。

+0

Okie ..ああ.. –

+2

それは残念だことがわかります。私たちの基本クラスは、RoboSherlockFragmentActivityを継承しています。私は多くのアプリがこのように編成されていると思う。これは、基底クラスのコード重複排除につながります。これは非常に恐ろしいパターンです。 – Snicolas

+0

@Snicolas、あなたは絶対に正しいです – Sviatoslav

0

ABSにスタイルはありません。Theme.Sherlock.Dialogです。

あなたは、その活動は例えば、味Dialogの1を拡張:

public class MyDialog extends Dialog { 
     // Lots of code 
    } 
1

Theme.Sherlock.Dialogはもうサポートされていません場合があります。 DialogFragmentで私のダイアログのスタイルを設定するには、次の方法を使用します。あなたはdialog templatesをチェックすることができます。

public Dialog onCreateDialog(Bundle savedInstanceState) 
{ 
    ContextThemeWrapper context = new ContextThemeWrapper(getActivity(), getTheme(true)); 
    AlertDialog.Builder builder = new AlertDialog.Builder(context); 
    ... 
    return builder.create(); 
} 

private int getTheme(boolean light) 
{ 
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) 
    { 
     return light ? android.R.style.Theme_DeviceDefault_Light_Dialog : android.R.style.Theme_DeviceDefault_Dialog; 
    } 
    else if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) 
    { 
     return light ? android.R.style.Theme_Holo_Light_Dialog : android.R.style.Theme_Holo_Dialog; 
    } 
    else 
    { 
     return android.R.style.Theme_Dialog; 
    } 
} 
1
--- res/values-v14/abs__themes.xml 
+++ res/values-v14/abs__themes.xml 
@@ -26,9 +26,4 @@ 
     <item name="android:windowActionBar">false</item> 
     <item name="android:windowNoTitle">true</item> 
    </style> 
+ 
+ <style name="Theme.Sherlock.Dialog" parent="android:Theme.Holo.Dialog"> 
+ </style> 
+ <style name="Theme.Sherlock.Light.Dialog" parent="android:Theme.Holo.Light.Dialog"> 
+ </style> 
</resources> 
+0

あなたのコード以外にも投稿できますか?おそらくそれが何をしているのか(コメントであろうと別々であろうと)? – bjb568

関連する問題