Java 仍然停留在JSONParsing问题上
为了解决这个问题,我陷入了困境,发疯了,但我运气不好。我尝试了所有成员给我的指导方针,就像我以前问过这个问题一样:(感谢所有回复的人。我搜索了很多来解决它,但从未成功。最后一个希望是这样的,所以请指导我哪里出了问题,如何解决这个JSONParsing?我发布了来自PHP的数据,并希望在android EditText框上获得它。我编写了代码,但从第一天起就存在一些问题,但还没有解决。我得到了不同的LogCat模拟器和手机上的错误。我已经向您提出了我的java代码和LogCat错误。任何指南对我来说都是宝贵的 我的Java代码就是我出错的地方:Java 仍然停留在JSONParsing问题上,java,android,Java,Android,为了解决这个问题,我陷入了困境,发疯了,但我运气不好。我尝试了所有成员给我的指导方针,就像我以前问过这个问题一样:(感谢所有回复的人。我搜索了很多来解决它,但从未成功。最后一个希望是这样的,所以请指导我哪里出了问题,如何解决这个JSONParsing?我发布了来自PHP的数据,并希望在android EditText框上获得它。我编写了代码,但从第一天起就存在一些问题,但还没有解决。我得到了不同的LogCat模拟器和手机上的错误。我已经向您提出了我的java代码和LogCat错误。任何指南对我来
// save button
btnSave = (Button) findViewById(R.id.btnSave);
// getting product details from intent
Intent i = getIntent();
// getting product id (pid) from intent
cid = i.getStringExtra(TAG_CID);
// save button click event
btnSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// starting background task to update product
new SaveTaskDetails().execute();
}
});
}
@Override
protected void onStart() {
super.onStart();
// Getting complete product details in background thread
new GetTaskDetails().execute();
}
/**
* Background Async Task to Get complete product details
* */
class GetTaskDetails extends AsyncTask<String, String, JSONObject> {
/**
* Before starting background thread Show Progress Dialog
* */
@Override
protected void onPreExecute() {
super.onPreExecute();
tDialog = new ProgressDialog(My_Task.this);
tDialog.setTitle("Please Wait");
tDialog.setMessage("Retrieving Task Details.");
tDialog.setIndeterminate(false);
tDialog.setCancelable(true);
tDialog.show();
}
/**
* Getting task details in background thread
* @return
**/
protected JSONObject doInBackground(String... params1) {
JSONObject my_task = null;
// updating UI from Background Thread
// Check for success tag
int success;
try {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("cid", cid));
// getting product details by making HTTP request
// Note that product details url will use GET request
JSONObject json = JSONParser.makeHttpRequest(
url_read_mytask, "GET", params);
// check your log for json response
// Log.d("Single Task Details", json.toString());
// json success tag
success = json.getInt(TAG_SUCCESS);
if (success == 1) {
// successfully received product details
JSONArray my_taskObj = json
.getJSONArray(TAG_MYTASK); // JSON Array
// get first product object from JSON Array
my_task = my_taskObj.getJSONObject(0);
}
else
{
// task with cid not found
}
}
catch (JSONException e) {
e.printStackTrace();
}
return my_task;
}
/**
* After completing background task Dismiss the progress dialog
* **/
protected void onPostExecute(JSONObject my_task) {
// dismiss the dialog once got all details
cus_name_txtbx = (EditText) findViewById(R.id.cus_name_txtbx);
try {
cus_name_txtbx.setText(my_task.getString(TAG_NAME));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
contact_no_txtbx = (EditText) findViewById(R.id.contact_no_txtbx);
try {
contact_no_txtbx.setText(my_task.getString(TAG_CONTACT));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ticket_no_txtbx = (EditText) findViewById(R.id.ticket_no_txtbx);
try {
ticket_no_txtbx.setText(my_task.getString(TAG_TICKET));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
task_detail_txtbx = (EditText) findViewById(R.id.task_detail_txtbx);
try {
task_detail_txtbx.setText(my_task.getString(TAG_TASKDETAIL));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
tDialog.dismiss();
}
}
/**
* Background Async Task to Save product Details
* */
class SaveTaskDetails extends AsyncTask<String, String, String> {
/**
* Before starting background thread Show Progress Dialog
* */
@Override
protected void onPreExecute() {
super.onPreExecute();
tDialog = new ProgressDialog(My_Task.this);
tDialog.setTitle("Please Wait");
tDialog.setMessage("Saving Task");
tDialog.setIndeterminate(false);
tDialog.setCancelable(true);
tDialog.show();
}
/**
* Saving product
* */
protected String doInBackground(String... args) {
// getting updated data from EditTexts
String cus_name = cus_name_txtbx.getText().toString();
String contact_no = contact_no_txtbx.getText().toString();
String ticket_no = ticket_no_txtbx.getText().toString();
String task_detail = task_detail_txtbx.getText().toString();
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair(TAG_CID, cid));
params.add(new BasicNameValuePair(TAG_NAME, cus_name));
params.add(new BasicNameValuePair(TAG_CONTACT, contact_no));
params.add(new BasicNameValuePair(TAG_TICKET, ticket_no));
params.add(new BasicNameValuePair(TAG_TASKDETAIL, task_detail));
// sending modified data through http request
// Notice that update product url accepts POST method
JSONObject json = JSONParser.makeHttpRequest(url_update_mytask,
"POST", params);
// check json success tag
try {
int success = json.getInt(TAG_SUCCESS);
if (success == 1) {
// successfully updated
Intent i = getIntent();
// send result code 100 to notify about product update
setResult(100, i);
finish();
} else {
// failed to update product
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
/**
* After completing background task Dismiss the progress dialog
* **/
protected void onPostExecute(String file_url) {
// dismiss the dialog once product uupdated
tDialog.dismiss();
}
}
//保存按钮
btnSave=(按钮)findviewbyd(R.id.btnSave);
//从intent获取产品详细信息
Intent i=getIntent();
//从intent获取产品id(pid)
cid=i.getStringExtra(标签号cid);
//保存按钮单击事件
btnSave.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图arg0){
//正在启动后台任务以更新产品
新建SaveTaskDetails().execute();
}
});
}
@凌驾
受保护的void onStart(){
super.onStart();
//在后台线程中获取完整的产品详细信息
新的GetTaskDetails().execute();
}
/**
*获取完整产品详细信息的后台异步任务
* */
类GetTaskDetails扩展了AsyncTask{
/**
*在启动后台线程显示进度对话框之前
* */
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
tDialog=新建进度对话框(我的任务,这个);
tDialog.setTitle(“请稍候”);
tDialog.setMessage(“检索任务详细信息”);
t模拟设定不确定(假);
t模拟可设置可取消(真);
t模拟显示();
}
/**
*在后台线程中获取任务详细信息
*@返回
**/
受保护的JSONObject doInBackground(字符串…参数1){
JSONObject my_task=null;
//从后台线程更新UI
//检查成功标签
成功;
试一试{
//建筑参数
List params=new ArrayList();
参数添加(新的BasicNameValuePair(“cid”,cid));
//通过发出HTTP请求获取产品详细信息
//请注意,产品详细信息url将使用GET请求
JSONObject json=JSONParser.makeHttpRequest(
url_read_mytask,“GET”,参数);
//检查日志中的json响应
//Log.d(“单个任务详细信息”,json.toString());
//json成功标记
success=json.getInt(TAG_success);
如果(成功==1){
//已成功接收产品详细信息
JSONArray my_taskObj=json
.getJSONArray(TAG_MYTASK);//JSON数组
//从JSON数组中获取第一个产品对象
my_task=my_taskObj.getJSONObject(0);
}
其他的
{
//找不到具有cid的任务
}
}
捕获(JSONException e){
e、 printStackTrace();
}
返回我的任务;
}
/**
*完成后台任务后,关闭“进度”对话框
* **/
受保护的void onPostExecute(JSONObject my_任务){
//获得所有详细信息后关闭对话框
cus_name_txtbx=(EditText)findViewById(R.id.cus_name_txtbx);
试一试{
cus_name_txtbx.setText(my_task.getString(TAG_name));
}捕获(JSONException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
contact_no_txtbx=(EditText)findViewById(R.id.contact_no_txtbx);
试一试{
contact_no_txtbx.setText(my_task.getString(TAG_contact));
}捕获(JSONException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
票证号txtbx=(EditText)findViewById(R.id.ticket号txtbx);
试一试{
票证号txtbx.setText(my_task.getString(TAG_票证));
}捕获(JSONException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
task_detail_txtbx=(EditText)findViewById(R.id.task_detail_txtbx);
试一试{
task_detail_txtbx.setText(my_task.getString(TAG_TASKDETAIL));
}捕获(JSONException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
tDialog.disclose();
}
}
/**
*用于保存产品详细信息的后台异步任务
* */
类SaveTaskDetails扩展了AsyncTask{
/**
*在启动后台线程显示进度对话框之前
* */
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
tDialog=新建进度对话框(我的任务,这个);
tDialog.setTitle(“请稍候”);
tDialog.setMessage(“保存任务”);
t模拟设定不确定(假);
t模拟可设置可取消(真);
t模拟显示();
}
/**
*储蓄产品
* */
受保护的字符串doInBackground(字符串…args){
//从EditText获取更新的数据
字符串cus_name=cus_name_txtbx.getText().toString();
String contact_no=contact_no_txtbx.getText().toString();
字符串ticket_no=ticket_no_txtbx.getText().toString();
字符串task\u detail=task\u detail\u txtbx.getText().toString();
//建筑参数
List params=new ArrayList();
参数添加(新的BasicNameValuePair(标记CID,CID));
参数添加(新的BasicNameValuePair(标记名称、客户名称));
帕
01-01 11:28:52.549: E/WindowManager(31782): at java.lang.reflect.Method.invokeNative(Native Method)
01-01 11:38:15.149: E/WindowManager(1133): Activity com.example.visit.record.My_Task has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@4054ce88 that was originally added here
01-01 11:38:15.149: E/WindowManager(1133): android.view.WindowLeaked: Activity com.example.visit.record.My_Task has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@4054ce88 that was originally added here
01-01 11:38:15.149: E/WindowManager(1133): at android.view.ViewRoot.<init>(ViewRoot.java:277)
01-01 11:38:15.149: E/WindowManager(1133): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
01-01 11:38:15.149: E/WindowManager(1133): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
01-01 11:38:15.149: E/WindowManager(1133): at android.view.Window$LocalWindowManager.addView(Window.java:433)
01-01 11:38:15.149: E/WindowManager(1133): at android.app.Dialog.show(Dialog.java:288)
01-01 11:38:15.149: E/WindowManager(1133): at com.example.visit.record.My_Task$GetTaskDetails.onPreExecute(My_Task.java:139)
01-01 11:38:15.149: E/WindowManager(1133): at android.os.AsyncTask.execute(AsyncTask.java:391)
01-01 11:38:15.149: E/WindowManager(1133): at com.example.visit.record.My_Task.onStart(My_Task.java:118)
01-01 11:38:15.149: E/WindowManager(1133): at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1225)
01-01 11:38:15.149: E/WindowManager(1133): at android.app.Activity.performStart(Activity.java:3941)
01-01 11:38:15.149: E/WindowManager(1133): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1794)
01-01 11:38:15.149: E/WindowManager(1133): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1842)
01-01 11:38:15.149: E/WindowManager(1133): at android.app.ActivityThread.access$1500(ActivityThread.java:132)
01-01 11:38:15.149: E/WindowManager(1133): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1038)
01-01 11:38:15.149: E/WindowManager(1133): at android.os.Handler.dispatchMessage(Handler.java:99)
01-01 11:38:15.149: E/WindowManager(1133): at android.os.Looper.loop(Looper.java:143)
01-01 11:38:15.149: E/WindowManager(1133): at android.app.ActivityThread.main(ActivityThread.java:4268)
01-01 11:38:15.149: E/WindowManager(1133): at java.lang.reflect.Method.invokeNative(Native Method)
01-01 11:38:15.149: E/WindowManager(1133): at java.lang.reflect.Method.invoke(Method.java:507)
01-01 11:38:15.149: E/WindowManager(1133): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-01 11:38:15.149: E/WindowManager(1133): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-01 11:38:15.149: E/WindowManager(1133): at dalvik.system.NativeStart.main(Native Method)