首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用微软android翻译API?

如何使用微软android翻译API?
EN

Stack Overflow用户
提问于 2012-10-26 14:00:01
回答 1查看 4.4K关注 0票数 2

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

代码语言:javascript
运行
复制
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();
                }



}
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-26 14:19:57

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

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

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

代码语言:javascript
运行
复制
EditText Input = (EditText)findViewById(R.id.input);
EditText Output = (EditText)findViewById(R.id.output);

一开始,在"Trans“实例化之后。然后将这些对象设置为全局变量,这样您就可以在OnClick事件中访问它们。

您的onClick方法不会检查传递的视图的id,您可能会像这样自食其果。对于所有具有侦听器的视图,通常都会使用case来执行switch语句。或者-您也可以为所有元素使用专用的ClickListeners (效率较低,但仍然是系统的):

代码语言:javascript
运行
复制
private OnClickListener translateClick = new OnClickListener() {

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13081564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档