【问题标题】:How to use Microsoft Translation API for android?如何使用适用于 android 的 Microsoft Translation API?
【发布时间】:2016-12-07 15:52:06
【问题描述】:

好的,我的问题是如何使用微软的安卓翻译 API?我的问题是我正在创建一个 android 应用程序,该应用程序将从一个 EditText 获取输入,当按下一个名为 Translate 的按钮时,它将将该文本翻译成另一种语言,然后将翻译后的文本设置为另一个 EditText ...我有写了一些代码,你能告诉我那个代码有什么问题吗,因为它根本不起作用,它不接受输入,因此不产生输出......谢谢......

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();
                }



}
}

【问题讨论】:

    标签: android microsoft-translator


    【解决方案1】:

    首先,您可能想了解更多关于 Java 编程的一般知识。

    您的对象实例应使用小写字母命名。例如EditText Input 应该是EditText input

    我建议你重新组织你的程序,通过移动

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

    开始,在“Trans”实例化之后。然后为这些对象创建全局变量,以便您可以在 OnClick 事件中访问它们。

    您的 onClick 方法不会检查传递的视图的 id,您可能会像这样在脚上开枪。为所有具有侦听器的视图创建一个带有 case 的 switch 语句是很常见的。 或者 - 您也可以为所有元素设置专用的 ClickListener(效率较低,但仍然系统化):

    private OnClickListener translateClick = new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                        // TODO
                }
            };
    

    并将其设置为您的翻译按钮 - trans.setOnClickListener(translateClick);

    【讨论】:

      猜你喜欢
      • 2018-03-24
      • 1970-01-01
      • 2012-03-16
      • 2015-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-07
      相关资源
      最近更新 更多