2012-11-02 1 views
0

В моем приложении для Android я получаю значения из массива, определенного в файле string.xml, и использую его в классе активности java. Он работал чудесно, прежде чем мне пришлось работать с арабскими шрифтами.Как обрабатывать данные и значение из массива в XML-файле

Когда я помещал Arrabic буквы в xml-файл, я не могу их компилировать в java-файле. он показывает ошибку "Some characters can not be mapped using cp1252" Вот xmle массив с Arrabic

<string-array name="country_arrays"> 

     <item>لا شيء</item> 
     <item>5 &#8211; 9</item> 
     <item>10 &#8211; 14</item> 
     <item>15 &#8211; 19</item> 
     <item>20 &#8211; 24</item> 
     <item>25 &#8211; 35</item> 
     <item>36 &#8211; 45</item> 

    </string-array> 

Вот код Java

if (s.equals("5 &#8211; 9")) { 
         message = getResources().getString(R.string.listdesc1); 

        } else if (s.equals("10 &#8211; 14")) { 
         message = getResources().getString(R.string.listdesc1); 
        } else if (s.equals("15 &#8211; 19")) { 
         message = getResources().getString(R.string.listdesc2); 
        } else if (s.equals("20 &#8211; 24")) { 
         message = getResources().getString(R.string.listdesc3); 
        } else if (s.equals("25 &#8211; 29")) { 
         message = getResources().getString(R.string.listdesc4); 
        } else if (s.equals("30 &#8211; 34")) { 
         message = getResources().getString(R.string.listdesc5); 
        } else if (s.equals("35 &#8211; 39")) { 
         message = getResources().getString(R.string.listdesc6); 
        } else if (s.equals("40 &#8211; 44")) { 
         message = getResources().getString(R.string.listdesc7); 
        } else if (s.equals("45 &#8211; 49")) { 
         message = getResources().getString(R.string.listdesc8); 
        } else if(s.equals(ذلك)){ 
         message = getResources().getString(R.string.listdesc9); 
        }else if(s.equals(شيء)){ 
         message=getResources().getString(R.string.listdesc0); 
        } 

        txtv2.setText(message); 
        txtv.setText(getResources().getString(R.string.listtitle1)); 
        // Toast.makeText(arg0.getContext(), message, 

Есть ли возможность PASSE значение, как и в HTML-элементов значение = «1» в массиве android xml. Если есть способ, я могу сравнить элементы массива с этим значением вместо фактического имени элемента массива.

однако plz помогите мне исправить это.

ТНХ inadvance ..

+0

Ваш редактор не позволяет сохранять символы Юникода. Попробуйте изменить кодировку редактора на «UTF-8» –

+0

eclipse показывает это сообщение, которое я прошу спасибо – newday

+0

Вы должны получить настройки редактора в окне> Настройки –

ответ

1

после работы несколько наших по этой проблеме, что я понял, было, когда мы оцениваем значения из строкового массива в строковом файле, мы не можем правильно поймать значения следующих значений (арабские буквы и значения –). когда я отлаживаю, я замечаю, что всегда значение 0 для позиции в методе onitemselectedListner().

<string-array name="country_arrays"> 

     <item>لا شيء</item> 
     <item>5 &#8211; 9</item> 
     <item>10 &#8211; 14</item> 
     <item>15 &#8211; 19</item> 
     <item>20 &#8211; 24</item> 
     <item>25 &#8211; 35</item> 
     <item>36 &#8211; 45</item> 

</string-array> 

Поэтому мне пришлось заполнить список в файле java указанным выше контентом. Затем я заметил, что данные передаются должным образом методу Лиснера. Если мы используем символы (A, B ... и т. Д.), Мы не хотим волноваться. все это было связано с арабскими буквами. (Я не знаю, почему файл макета не может правильно обрабатывать арабские буквы в java-файлах).

Затем я управляю кодом следующим образом.

List<String> list = new ArrayList<String>(); 
     list.add("لا شيء"); 
     list.add("5 - 9"); 
     list.add("10 - 14"); 
     list.add("15 - 19"); 

     ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, 
     android.R.layout.simple_spinner_item, list); 
     dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner1.setAdapter(dataAdapter); 

     //Log.v(LogApp,"mint value is:" + mint); 

     spinner1.setOnItemSelectedListener(new OnItemSelectedListener() { 

      public void onItemSelected(AdapterView<?> arg0, View arg1, 
        int arg2, long arg3) { 

       String s = arg0.getItemAtPosition(arg2).toString(); 

       if (s.equals("لا شيء")) { 
        message = getResources().getString(R.string.listdesc0); 

       } else if (s.equals("5 - 9")) { 
        message = getResources().getString(R.string.listdesc1); 
       } else if (s.equals("10 - 14")) { 
        message = getResources().getString(R.string.listdesc2); 
       } else if (s.equals("15 - 19")) { 
        message = getResources().getString(R.string.listdesc3); 
       }    txtv2.setText(message); 
       //txtv.setText(getResources().getString(R.string.listtitle1)); 
       // Toast.makeText(arg0.getContext(), message, 
       // Toast.LENGTH_LONG).show(); 
      } 

      public void onNothingSelected(AdapterView<?> arg0) { 
       // TODO Auto-generated method stub 

      } 

     }); 

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

  • Нет связанных вопросов^_^