2015-06-30 45 views
2

我在嘗試創建包含標題和hebrew中的一些文本的DialogFragment時遇到問題。Android DialogFragment中的非英文文本顯示爲問號

文本顯示爲??? ??? ??,而英文文本顯示爲按順序。

我的代碼:

public Dialog onCreateDialog(Bundle savedInstanceState) { 
     LayoutInflater factory = LayoutInflater.from(getActivity()); 
     final View textEntryView = factory.inflate(R.layout.info_fragment, null); 
     return new AlertDialog.Builder(getActivity()) 
       .setView(textEntryView) 
       .setTitle(<some sentence in hebrew>) 
       .setMessage(<another hebrew text>) 
       .setPositiveButton("OK", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 
        } 
       }).create(); 
} 

附: 如果我在我的活動中創建常規AlertDialog,則希伯來語文本顯示得很好。 它可以像使用帶有AlertDialog的片段一樣嗎?

任何想法如何解決這個問題? 謝謝!

問題的圖片:http://i.stack.imgur.com/hhrlL.jpg

回答

1

res文件夾內創建文件夾values-heres ⇒ values ⇒ strings.xml位置strings.xml文件複製在這裏。

轉到res ⇒ values ⇒ strings.xml然後聲明字符串:

<string name="hebrew_title">hello</string> 

轉到res ⇒ values-he ⇒ strings.xml然後聲明字符串:

<string name="hebrew_title">שלום</string> 

然後在你的代碼寫這樣的:

.setTitle(getResources().getString(R.string.hebrew_title)) 

你什麼時候將設備本地語言設置爲hebrew。您的文本將以「希伯來語」語言顯示。希望這會解決你的問題。

注意:請確定和values文件夾中的strings.xml文件夾中的字符串都具有相同的id

+0

他們之間有什麼區別?爲什麼你認爲這種方式會起作用? – Josef

+0

如果設備未本地化爲希伯來文,則使英文文本生效。 我的設備是英文的,並且有希伯來語作爲第二語言。如果我在我的活動中創建常規AlertDialog,則希伯來語文本顯示得很好。它可以像使用帶有AlertDialog的片段一樣顯示嗎? –

+0

我想你在你的Android Studio中使用'windows-1252 Encoding',這就是你在Android模擬器中獲得''''的原因。將編碼改爲'utf-8'。你不會得到'???' –

相關問題