2016-01-23 93 views
0

我決定使用bing api來翻譯我的系統。下面的代碼將顯示一個spinner。我想讓用戶從spinner中選擇語言。然後,bing api會根據選定的語言來翻譯系統,是否可以讓bing api來翻譯values文件夾(strings.xml)?我如何在java中給它打電話。下面是我的代碼Microsoft translator api issue

public class LanguageActivity extends Activity { 
    Spinner spinnerctrl; 
    String translatedText; 
    Locale[] locales; 

    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_language); 
     setTitle(R.string.title_activity_language) 
     spinnerctrl = (Spinner) findViewById(R.id.spinner1); 
     spinnerctrl.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

      public void onItemSelected(AdapterView<?> parent, View view, 
             int pos, long id) { 

       if (pos == 1) { 

        Toast.makeText(parent.getContext(), 
          getResources().getString(R.string.YouselectEn), Toast.LENGTH_SHORT) 
          .show(); 

       } else if (pos == 2) { 

        Toast.makeText(parent.getContext(), 
          getResources().getString(R.string.YouselectZH), Toast.LENGTH_SHORT) 
          .show(); 
       } else if (pos == 3) { 

        Toast.makeText(parent.getContext(), 
          getResources().getString(R.string.YouselectHI), Toast.LENGTH_SHORT) 
          .show(); 

       } 
       else if (pos == 4) { 

        Toast.makeText(parent.getContext(), 
          getResources().getString(R.string.YouselectMs), Toast.LENGTH_SHORT) 
          .show(); 

       } 


      } 

      public void onNothingSelected(AdapterView<?> arg0) { 
       // TODO Auto-generated method stub 
       Toast.makeText(getApplicationContext(), "Nothing to select", Toast.LENGTH_LONG).show(); 
      } 
      class MyAsyncTask extends AsyncTask<Void, Integer, Boolean> { 
       @Override 
       protected Boolean doInBackground(Void... arg0) { 
        Translate.setClientId("plantidentificatio"); 
        Translate.setClientSecret("lMFkUM+gG96NFrhhZV649Ix8NxR2SvqXJWpOTOgNq54"); 
        try { 
         translatedText = Translate.execute("I should probably set this to something a little less profane", Language.ENGLISH, Language.CHINESE_SIMPLIFIED); 
        } catch(Exception e) { 
         translatedText = e.toString(); 
        } 
        return true; 
       } 
      } 

     }); 
    } 
} 

回答

2

約兵API不知道,但這裏是代碼從string.xml

Field[] fields = R.string.class.getFields(); 
    for (final Field field : fields) { 
     String name = field.getName(); //name of string 
     try { 
      int id = field.getInt(R.string.class); //id of string 
      Log.e("name",name); 
      Log.e("value", getString(id)); 

     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 

這裏Field得到的所有數據類型應該爲java.lang.reflect.Field

+0

對不起的,可我知道在哪裏放置它? –