Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为android使用Microsoft翻译API?_Android_Microsoft Translator - Fatal编程技术网

如何为android使用Microsoft翻译API?

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

好的,我的问题是如何使用android的微软翻译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();
                }



}
}

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

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

我建议您重新组织您的程序,移动

EditText Input = (EditText)findViewById(R.id.input);
EditText Output = (EditText)findViewById(R.id.output);
开始时,在“Trans”实例化之后。然后使这些对象成为全局变量,以便可以在OnClick事件中访问它们

您的onClick方法不会检查所传递的视图的id,您可能会像这样击中自己的脚。对于所有具有侦听器的视图,使用带有案例的switch语句是很常见的。 或者-您也可以为所有元素使用专用的ClickListener(效率较低,但仍然系统化):

并将其设置为translate按钮-trans.setOnClickListener(translateClick)

private OnClickListener translateClick = new OnClickListener() {

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