2017-02-04 1 views
0

Я делаю специфическое для языка приложение, в котором пользователь выбирает язык из списка (хинди или английский).Android Hindi Text Отображение специальных символов

Что происходит, когда пользователь выбирает английский язык, все работает отлично, т.е. пользователь вставляет данные в базу данных, а затем извлекает их в текстовые поля правильно, но когда пользователь выбирает язык хинди и вставляет данные в базу данных на языке хинди, он отображает текст значение полей как "??????"

Я хочу это текстовые поля значения должны быть отображены на языке хинди .. Я использовал Typeface для этого, но это не работает Это моя часть кода

Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/hindi.ttf");          //i have put hindi.ttf file in fonts folder under assets under main 
     name.setTypeface(tf); 

     save.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       if (view.getId() == R.id.tvsave) { 
        if (name.getText().toString().length() == 0) { 
         name.setError("Name cannot be empty"); 
        } else if (phone.getText().toString().length() == 0) { 
         phone.setError("Phone No. cannot be empty"); 
        } 

    else if(!phone.getText().toString().matches(phonePattern)) 
          phone.setError("Invalid Mobile"); 
         } else if (house.getText().toString().length() == 0) { 
          house.setError("House No. cannot be empty"); 
         } else if (area.getText().toString().length() == 0) { 
          area.setError("Area cannot be empty"); 
         } else if (landmark.getText().toString().length() == 0) { 
          landmark.setError("Landmark cannot be empty"); 
         } else if 
           (name.getText().toString().length() == 0 || phone.getText().toString().length() == 0 || house.getText().toString().length() == 0 || area.getText().toString().length() == 0 || landmark.getText().toString().length() == 0) { 
          Toast.makeText(getApplicationContext(), "Please Enter Details", 
            Toast.LENGTH_LONG).show(); 
         } else if (Utils.isNetworkAvailable(AddNewAddress.this)) { 
          new saveaddress().execute(custid, name.getText().toString(), phone.getText().toString(), house.getText().toString(), landmark.getText().toString(), datamodel.getId(), area.getText().toString());    //this is saving data into database 
         } else { 
          final Dialog dialog = new Dialog(AddNewAddress.this); 
          dialog.requestWindowFeature(Window.FEATURE_LEFT_ICON); 

          dialog.setContentView(R.layout.internetconnectiondialog); 
          dialog.setTitle(AddNewAddress.this.getResources().getString(R.string.connectionfailed)); 
          TextView text = (TextView) dialog.findViewById(R.id.textDialog); 
          text.setText(AddNewAddress.this.getResources().getString(R.string.checkinternetsettings)); 
          dialog.show(); 
          Button declineButton = (Button) dialog.findViewById(R.id.declineButton); 
          declineButton.setOnClickListener(new View.OnClickListener() { 
           @Override 
           public void onClick(View v) { 
            dialog.dismiss(); 
           } 
          }); 
         } 
        } 
       } 
      }); 
      mySpinner = (Spinner) findViewById(R.id.spncity); 
      new spinnercity().execute(language); 

     } 



class saveaddress extends AsyncTask<String, Void, String> { 
     @Override 
     protected void onPreExecute() { 
      dialogFrag.show(getSupportFragmentManager(), "Dialog"); 
      dialogFrag.setCancelable(false); 
      super.onPreExecute(); 
     } 

     @Override 
     protected String doInBackground(String... params) { 
      JSONObject jsonObject; 
      try { 
       String response = AddNewAddressPostHit.getJSONfromURL(params[0], params[1], params[2], params[3], params[4], params[5], params[6]); 

       jsonObject = new JSONObject(response.toString()); 
       message = jsonObject.getString("Msg"); 

      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
      return null; 
     } 

     @Override 
     protected void onPostExecute(String result) { 
      dialogFrag.dismiss(); 
      super.onPostExecute(result); 
     } 

Я хочу, чтобы эти text_fields значение должен отображаться на языке Hindi, когда пользователь вставляет данные в Hindi язык еще English Для этого я использовал Typeface, но это не работает. Скажите, где я ошибаюсь как можно скорее.

+0

Вы можете явно указать хинди текст в поле? –

+0

Я не получил вас – Neha

+1

, а не из db .. если вы установилиText некоторые хинди текст. В противном случае это может быть проблема с некоторыми символами в другом месте –

ответ

0

попробуйте преобразовать данные строки с этим при сохранении в db и так же, извлекая их из db.

String str = (URLDecoder.decode(your_editext_value, "UTF-8")); 
+0

это не работает – Neha

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