您好我是Android编程的新手,并建议使用AsyncTask来建立我的网络连接。在闭锁段在AsyncTask中的错误
和onPostExecute -
(当然不能被解析):
语法我之前我加入他们到doInBackground这是工作区接收错误令牌错误“)”,“; expected-为(字符串结果)
(方法makeText(上下文,CharSequence的,INT)在类型吐司是 不适用于参数(LongOperation,字符串,整数)) - 用于Toast.makeText
这些错误与我放置代码的位置有关吗?我非常欢迎任何适合我的代码的答案。
package com.example.clearlight; import android.os.AsyncTask; import android.os.Bundle; import android.app.Activity; import android.widget.TextView; import android.widget.Toast; import java.net.URL; import org.apache.http.client.ResponseHandler; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.BasicResponseHandler; import org.apache.http.impl.client.DefaultHttpClient; import android.os.StrictMode; import android.util.Log; public class MainActivity extends Activity { TextView txt; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); setContentView(R.layout.relative); class LongOperation extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... params) { // TODO Auto-generated method stub URL url = null; DefaultHttpClient httpclient = null; try { String registrationUrl = "http://10.0.2.2/SensorInfo/GetLightData?sensor=light"; url = new URL(registrationUrl); HttpGet getRequest = new HttpGet(registrationUrl); ResponseHandler<String> handler = new BasicResponseHandler(); httpclient = new DefaultHttpClient(); // request data from server String result = httpclient.execute(getRequest, handler); Log.d("MyApp", "Data from server is "+ result);} catch (Exception ex) {Log.e("error",ex.toString()); ex.printStackTrace(); } @Override protected void onPostExecute(String result) { TextView text1 = (TextView) findViewById(R.id.text); //Sets the new text to TextView (runtime click event)//******* text1.setText("Light Data= " + result); Toast.makeText(this, "Light Data:" + result, Toast.LENGTH_SHORT).show(); //MESSAGE BOX //txtMessage.setText(String.valueOf(msg1) + " " + String.valueOf(msg2)); } } } } }
按Ctrl-Shift-F来设置你的源代码格式,这是一团糟,一旦你的代码格式正确,你的问题就会变得更加明显 – 323go 2013-03-17 16:33:00
道歉,我已经改变了它 – Nick 2013-03-17 16:35:55
我会说你坏了建议在AsyncTask中尝试进行网络交互是注定的。 – 2013-03-17 16:39:36