2015-06-30 2 views
2

Я столкнулся с проблемой при попытке создать диалог DialogFragment, который включает заголовок и текст в hebrew.Неанглийский текст в 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(); 
} 

P.S. Если я создаю регулярный AlertDialog в своей деятельности, текст на иврите показывает только хорошо. Может ли это выглядеть так, используя внутри него фрагмент с AlertDialog?

любая идея, как это решить? спасибо !!

Изображения проблемы: http://i.stack.imgur.com/hhrlL.jpg

ответ

1

Создать папку values-he внутри res папку и скопировать файл strings.xml сюда из res ⇒ values ⇒ 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. Ваш текст будет показан на «иврите». Надеюсь, это решит вашу проблему.

Примечание: Убедитесь, что строки имеют одинаковые id в обоих strings.xml файлах values-he и values папке.

+0

В чем разница между ними? Почему вы думаете, что так будет работать? – Josef

+0

Он делает текст на английском языке, если устройство не локализовано на иврите. мое устройство на английском языке и имеет иврит в качестве второго языка. Если я создам регулярный AlertDialog в своей деятельности, текст на иврите показывает, что это хорошо. может ли он выглядеть так, используя фрагмент с AlertDialog внутри него? –

+0

Я думаю, что вы используете 'windows-1252 Encoding' в своей Android Studio, поэтому вы получаете' ???? 'в Android Emulator. Измените кодировку на 'utf-8'. Вы не получите '???' –

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