2014-12-29 2 views
0

данных Есть шоу в LogCat, но не показывать в текстовом режиме .. что я могу сделатьData Show в LogCat, но не отображаются в текстовом виде

Это мой журнал

 
12-29 11:05:13.908: D/gralloc_goldfish(772): Emulator without GPU emulation detected. 
12-29 11:05:24.649: D/dalvikvm(772): GC_FOR_ALLOC freed 195K, 9% free 7439K/8135K, paused 35ms, total 38ms 
12-29 11:05:26.458: D/dalvikvm(772): GC_CONCURRENT freed 229K, 10% free 7628K/8455K, paused 26ms+99ms, total 185ms 
12-29 11:05:27.908: D/Create Response(772): {"message":"Login successfully.","success":1} 
12-29 11:05:28.598: I/Choreographer(772): Skipped 52 frames! The application may be doing too much work on its main thread. 
12-29 11:05:29.848: D/Create Response(772): {"3":"[email protected]","2":"myname","1":"msnmsn","0":"8527801400","mobile_number":"8527801400","hint":"myname","email_id":"[email protected]","password":"msnmsn"} 
12-29 11:05:29.848: I/JSON parse(772): myname 
12-29 11:05:29.878: W/System.err(772): android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. 
12-29 11:05:29.878: W/System.err(772): at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:4609) 
12-29 11:05:29.878: W/System.err(772): at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:835) 
12-29 11:05:29.878: W/System.err(772): at android.view.View.requestLayout(View.java:15129) 
12-29 11:05:29.878: W/System.err(772): at android.view.View.requestLayout(View.java:15129) 
12-29 11:05:29.878: W/System.err(772): at android.view.View.requestLayout(View.java:15129) 
12-29 11:05:29.888: W/System.err(772): at android.view.View.requestLayout(View.java:15129) 
12-29 11:05:29.888: W/System.err(772): at android.view.View.requestLayout(View.java:15129) 
12-29 11:05:29.888: W/System.err(772): at android.widget.TextView.checkForRelayout(TextView.java:6303) 
12-29 11:05:29.888: W/System.err(772): at android.widget.TextView.setText(TextView.java:3547) 
12-29 11:05:29.888: W/System.err(772): at android.widget.TextView.setText(TextView.java:3405) 
12-29 11:05:29.888: W/System.err(772): at android.widget.TextView.setText(TextView.java:3380) 
12-29 11:05:29.898: W/System.err(772): at com.example.phonebook.Welcome$loginAccess.doInBackground(Welcome.java:93) 
12-29 11:05:29.898: W/System.err(772): at com.example.phonebook.Welcome$loginAccess.doInBackground(Welcome.java:1) 
12-29 11:05:29.898: W/System.err(772): at android.os.AsyncTask$2.call(AsyncTask.java:287) 
12-29 11:05:29.898: W/System.err(772): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
12-29 11:05:29.898: W/System.err(772): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
12-29 11:05:29.898: W/System.err(772): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
12-29 11:05:29.908: W/System.err(772): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 
12-29 11:05:29.908: W/System.err(772): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
12-29 11:05:29.908: W/System.err(772): at java.lang.Thread.run(Thread.java:856) 

Это мой Добро пожаловать активность

 

    package com.example.phonebook; 

    import java.util.ArrayList; 
    import java.util.List; 

    import org.apache.http.NameValuePair; 
    import org.apache.http.message.BasicNameValuePair; 
    import org.json.JSONObject; 



    import android.app.Activity; 
    import android.os.AsyncTask; 
    import android.os.Bundle; 
    import android.os.StrictMode; 
    import android.util.Log; 
    import android.widget.TextView; 

    public class Welcome extends Activity { 
    // private ProgressDialog pDialog; 

     TextView jsonParsed1,DataShow,hint_data; 

     JSONParser jsonParser = new JSONParser(); 
     JSONParser jobj = new JSONParser(); 
     private static String url = "http://192.168.1.10/android_connect/login_setup/show_data.php"; 

     //private static final String about = "about"; 
     // private static final String TAG_SUCCESS="success"; 
     // private static final String hint="hint"; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() 
      .detectDiskReads().detectDiskWrites().detectNetwork() 
      .penaltyLog().build()); 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.welcome); 

      jsonParsed1=(TextView)findViewById(R.id.jsonParsed); 
      DataShow=(TextView)findViewById(R.id.show_all_data); 
      hint_data=(TextView)findViewById(R.id.hint_datafor_value); 

      String abt = getIntent().getStringExtra("mobile_number"); 
      //Intent i=getIntent(); 
      //String abt=i.getStringExtra("mobile_number"); 
      //System.out.println(abt); 
      //jsonParsed1.setText(abt); 

      new loginAccess().execute(); 
     } 

    class loginAccess extends AsyncTask { 

     TextView jsonParsed = (TextView) findViewById(R.id.jsonParsed); 

     private String Content; 
     String OutputData = ""; 
     JSONObject jsonResponse; 



     @Override 
     protected String doInBackground(String... arg0) { 

      String abt = getIntent().getStringExtra("mobile_number"); 

      List params = new ArrayList(); 
      params.add(new BasicNameValuePair("mobile_number", abt)); 
      JSONObject json = jsonParser.makeHttpRequest(url,"POST", params); 

       Content = json.toString(); 

       Log.d("Create Response", Content); 
    /****************** Start Parse Response JSON Data *************/ 




       try { 

        /****** Creates a new JSONObject with name/value mappings from the JSON string. ********/ 
        jsonResponse = new JSONObject(Content); 

        /******* Fetch node values **********/ 
        String hint = jsonResponse.optString("hint").toString(); 

        OutputData += "Node : \n\n  "+ hint +" "; 

        Log.i("JSON parse", hint); 

       /****************** End Parse Response JSON Data *************/  

        // jsonParsed.setText(OutputData); 

       } catch (Exception e) { 

        e.printStackTrace(); 
       } 


       return null; 
     } 

     protected void onPostExecute(Void unused) { 
      //  //JSONObject jsonResponse = null; 
      //  
      //  /******* Fetch node values **********/ 
      //  String hint = jsonResponse.optString("hint").toString(); 
      //   
      //  OutputData += "Node : \n\n  "+ hint +" "; 
      //   
      //  Log.i("JSON parse", hint); 
      //  
      //  /****************** End Parse Response JSON Data *************/  
      //   
      //  hint_data.setText(OutputData); 

       jsonParsed.setText(OutputData); 

      } 

     } 
    } 



+0

Разработано? –

ответ

1

Измените задачу async следующим образом: Выполнение фонового метода asynctask выполняется в NON Threading, поэтому мы не можем изменить ui-элементы из doInbackgroud, поэтому мы должны вернуть этот результат, чтобы результат включался в метод postExecute в качестве параметра то мы можем изменить интерфейс

package com.example.phonebook; 

    import java.util.ArrayList; 
import java.util.List; 

import org.apache.http.message.BasicNameValuePair; 
import org.json.JSONObject; 

import android.app.Activity; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.os.StrictMode; 
import android.util.Log; 
import android.widget.TextView; 

import com.afbb.animationtest.R; 

    public class Welcome extends Activity { 
     TextView jsonParsed1,DataShow,hint_data; 
     TextView jsonParsed ; 
     JSONParser jsonParser = new JSONParser(); 
     JSONParser jobj = new JSONParser(); 
     private static String url = "http://192.168.1.10/android_connect/login_setup/show_data.php"; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() 
      .detectDiskReads().detectDiskWrites().detectNetwork() 
      .penaltyLog().build()); 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.welcome); 
      jsonParsed1=(TextView)findViewById(R.id.jsonParsed); 
      DataShow=(TextView)findViewById(R.id.show_all_data); 
      hint_data=(TextView)findViewById(R.id.hint_datafor_value); 
      jsonParsed = (TextView) findViewById(R.id.jsonParsed); 
      String abt = getIntent().getStringExtra("mobile_number"); 
      new loginAccess().execute(); 
     } 

    class loginAccess extends AsyncTask<String,Void,JSONObject> { 
     private String Content; 
     @Override 
     protected JSONObject doInBackground(String... arg0) { 
      String abt = getIntent().getStringExtra("mobile_number"); 
      List params = new ArrayList(); 
      params.add(new BasicNameValuePair("mobile_number", abt)); 
      JSONObject json = jsonParser.makeHttpRequest(url,"POST", params); 
       Content = json.toString(); 
       Log.d("Create Response", Content); 
    /****************** Start Parse Response JSON Data *************/ 
       try { 
        JSONObject jsonResponse = new JSONObject(Content); 
        String hint = jsonResponse.optString("hint").toString(); 
        return jsonResponse; 
       } catch (Exception e) { 

        e.printStackTrace(); 
       } 
       return null; 
     } 
     protected void onPostExecute(JSONObject result) { 
      //Parse and update the UI 
       jsonParsed.setText(OutputData); 
      } 
     } 
    } 



i 
+0

спросите меня, ясно, что я не получил вас. –

+0

показать свой модифицированный код. –

+0

как я показываю эти данные в приветственной деятельности ..... ?? .. не показывать только одни данные {"3": "[email protected]", "2": "myname", "1" : "msnmsn", "0": "8527801400", "mobile_number": "8527801400", "намек": "MyName", "email_id": "[email protected]", "пароль": "msnmsn" } –

1

jsonParsed.setText(OutputData);
Вы просто поставить выше линии в onPostExecute метод после того, как hint_data.setText(OutputData);, и вы получите идеальный выход.
А также удалить jsonParsed.setText(OutputData); линия из doInBackground метода.

+0

Я изменяю то, что вы сказали, но данные не показывают идеальный ... вы можете установить активность ... Deep Mehta Sir –

+0

Редактировать вопрос, как вам нравится, –

+0

Log.i («JSON parse», подсказка); Просто поместите эту строку в метод onPostExecute перед jsonParsed.setText (OutputData); и вы получите решение, которое я думаю. Просто проверьте, что после ввода этого журнала в метод onPostExecute вы получите данные в logcat или нет! –

0

Удалить ниже линии от метода doInBackground

jsonParsed.setText(OutputData); 

Вы не можете коснуться вид из вне основного потока.

Смежные вопросы