Java 仍然停留在JSONParsing问题上

Java 仍然停留在JSONParsing问题上,java,android,Java,Android,为了解决这个问题,我陷入了困境,发疯了,但我运气不好。我尝试了所有成员给我的指导方针,就像我以前问过这个问题一样:(感谢所有回复的人。我搜索了很多来解决它,但从未成功。最后一个希望是这样的,所以请指导我哪里出了问题,如何解决这个JSONParsing?我发布了来自PHP的数据,并希望在android EditText框上获得它。我编写了代码,但从第一天起就存在一些问题,但还没有解决。我得到了不同的LogCat模拟器和手机上的错误。我已经向您提出了我的java代码和LogCat错误。任何指南对我来

为了解决这个问题,我陷入了困境,发疯了,但我运气不好。我尝试了所有成员给我的指导方针,就像我以前问过这个问题一样:(感谢所有回复的人。我搜索了很多来解决它,但从未成功。最后一个希望是这样的,所以请指导我哪里出了问题,如何解决这个JSONParsing?我发布了来自PHP的数据,并希望在android EditText框上获得它。我编写了代码,但从第一天起就存在一些问题,但还没有解决。我得到了不同的LogCat模拟器和手机上的错误。我已经向您提出了我的java代码和LogCat错误。任何指南对我来说都是宝贵的

我的Java代码就是我出错的地方:

// 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)