2012-10-26 69 views
2

好吧,我的問題是如何使用Microsoft翻譯API爲Android?我的問題是,我正在創建一個android應用程序,它將從一個EditText獲取輸入,並且當按下一個名爲Translate的按鈕時,它會將該文本翻譯成另一種語言,然後將翻譯的文本設置爲另一個EditText ...我有編寫一些代碼,你能告訴我有什麼不好的代碼,因爲它不工作,不考慮輸入,因而不會產生輸出...謝謝...如何使用Microsoft Translation API for android?

package kalex.globaltranslate; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 

import com.memetix.mst.language.Language; 
import com.memetix.mst.translate.Translate; 

public class TranslateActivity extends Activity implements OnClickListener { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     Translate.setClientId("MY ID"); 
     Translate.setClientSecret("MY SECRET KEY"); 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_translate); 
     Button Trans = (Button)findViewById(R.id.translate); 
     Trans.setOnClickListener(this); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.activity_translate, menu); 
     return true; 
    } 

    public void onClick(View v) { 
     //get the text entered 
     EditText Input = (EditText)findViewById(R.id.input); 
     EditText Output = (EditText)findViewById(R.id.output); 



       String In =Input.getText().toString(); 
       //String Out; 
       try { 
        String Out = Translate.execute(In, Language.AUTO_DETECT, Language.FRENCH); 

       Input.setText(Out); 
       Output.setText(Out); 
       } catch (Exception e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 



} 
} 

回答

2

首先,你可能想通常閱讀更多關於Java編程的內容。

您的對象實例應該用小寫字母命名。例如EditText Input應該是EditText input

我建議您重新整理自己的程序,通過移動

EditText Input = (EditText)findViewById(R.id.input); 
EditText Output = (EditText)findViewById(R.id.output); 
之初

,「跨」實例化之後。然後製作這些對象的全局變量,以便您可以在OnClick事件中訪問它們。

您的onClick方法不會檢查傳遞的視圖的ID,並且您可能會像這樣拍攝自己的腳。通常爲具有偵聽器的所有視圖創建一個switch語句。 或者 - 所有元素,你也可以有專門的ClickListeners(效率較低,但仍系統):

private OnClickListener translateClick = new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
        // TODO 
      } 
     }; 

並將其設置爲你的翻譯按鈕 - trans.setOnClickListener(translateClick);

+0

謝謝你現在工作得很好...... :) – Kalex