Merhaba, şu şekilde kullanabilirsiniz:
TranslateAsyncTask classı:
[code]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import android.os.AsyncTask;
import android.util.Log;
public class TranslateAsyncTask extends AsyncTask<String, Void, String> {
TranslateCallback translateCallback;
public TranslateAsyncTask(TranslateCallback translateCallback) {
this.translateCallback = translateCallback;
}
protected void onPostExecute(String result) {
translateCallback.onSuccess(result);
}
@Override
protected String doInBackground(String... params) {
String result = new String();
try {
result += mTranslateData(params[0],"tr","en");
} catch (IOException e) {
Log.e("Hata", e.getLocalizedMessage());
}
return result;
}
public String mTranslateData(String text,String to,String from) throws IOException {
URL url = new URL("http://translate.google.com.tw/translate_a/t?client=t&hl="+from+"&sl="+to+"&tl=en&ie=UTF-8&oe=UTF-8&multires=1&oc=1&otf=2&ssel=0&tsel=0&sc=1&q="+ URLEncoder.encode(text, "UTF-8"));
URLConnection urlConnection = url.openConnection();
urlConnection.setRequestProperty("User-Agent", "Something Else");
BufferedReader br = new BufferedReader(new InputStreamReader(
urlConnection.getInputStream()));
String result = br.readLine();
br.close();
result = result.substring(2, result.indexOf("]]") + 1);
StringBuilder sb = new StringBuilder();
String[] splits = result.split("(?<!\\\\)\"");
for (int i = 1; i < splits.length; i += 8)
sb.append(splits[i]);
return sb.toString().replace("\\n", "\n").replaceAll("\\\\(.)", "$1");
}
}
[/code]
Bu classın haricinde bir de şöyle bir interface oluşturun:
[code]
public interface TranslateCallback {
public void onSuccess(String result);
}
[/code]
onCreate metodunda da şu şekilde çağırabilirsiniz:
[code]
new TranslateAsyncTask(new TranslateCallback() {
@Override
public void onSuccess(String result) {
resultTV.setText(result);
}
}).execute(text.getText().toString());
[/code]
resultTV kullandığım textview, text de kullandığım edittext. Bu haliyle textte yazılan stringi türkçeden ingilizceye çevirip resultTV'ye gönderiyor. Kendinize göre düzenleyip kullanabilirsiniz. Kolay gelsin.