【发布时间】:2014-07-17 10:23:13
【问题描述】:
这段代码是真的吗?我正在使用 AsyncTask 获取结果,但看不到任何结果,我正在使用 WampServer。我认为我的错误逻辑在我的getter/setter 中:
public class NotesActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebPageTask task = new WebPageTask();
task.execute(new String[] { "http://192.168.5.170:8081/note-server/" });
}
private class WebPageTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
String response = "";
for (String url : urls) {
DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
try {
HttpResponse execute = client.execute(httpGet);
InputStream content = execute.getEntity().getContent();
BufferedReader buffer = new BufferedReader(
new InputStreamReader(content));
String s = "";
while ((s = buffer.readLine()) != null) {
response += s;
}
} catch (Exception e) {
e.printStackTrace();
}
}
return response;
}
@Override
protected void onPostExecute(String result) {
ArrayList<StructTask> nettasks = new ArrayList<StructTask>();
JSONObject object = null;
JSONArray tasks = null;
StructTask task = new StructTask();
try {
tasks = new JSONArray(result);
for (int i = 0; i < tasks.length(); i++) {
object = tasks.getJSONObject(i);
task.setid(object.getLong("task_id"));
task.settitle(object.getString("task_title"));
task.setdesc(object.getString("task_desc"));
task.settone(object.getBoolean("task_done"));
nettasks.add(task);
}
} catch (JSONException e) {
e.printStackTrace();
}
Log.i("LOG","dd");
for (StructTask taskesss : nettasks) {
Log.i("LOG", "Taskes: " + taskesss.getid()+"|"+taskesss.gettitle()+"|"+taskesss.getdesc() + "-" + taskesss.getdone());
}
}
}
}
这是Getter/Setter 中的StructTask.java。我认为我的class getter/setter 有逻辑错误:
public class StructTask {
private long id;
private String title;
private String desc;
private boolean done;
public long getid() {
return this.id;
}
void setid(long id) {
this.id = id;
}
public String gettitle() {
return this.title;
}
void settitle(String title) {
this.title = title;
}
public String getdesc() {
return this.desc;
}
void setdesc(String desc) {
this.desc = desc;
}
public boolean getdone() {
return this.done;
}
void setdone(boolean done) {
this.done = done;
}
}
下面的代码不返回任何结果:
for (StructTask taskesss : nettasks) {
Log.i("LOG", "Taskes: " + taskesss.getid()+"|"+taskesss.gettitle()+"|"+taskesss.getdesc() + "-" + taskesss.getdone());
}
这是我的 sql 页面:
【问题讨论】:
-
这是什么错误?你从哪里得到的?
-
你能在你的安卓浏览器中获取 URL 吗??
-
log.i 的值是多少,值设置是否正确?
-
是的,我可以获取 URL 等。我知道我的逻辑错误在 :task.setid(object.getLong("task_id")); task.settitle(object.getString("task_title")); task.setdesc(object.getString("task_desc")); task.settone(object.getBoolean("task_done")); nettasks.add(task);
标签: java android mysql multithreading android-asynctask