2017-02-13 1 views
-1

4 개의 필드 (ID, 이름, 정보, img)가 포함 된 데이터베이스를 만든 데이터베이스를 생성했습니다. 4 개의 필드가 텍스트 유형입니다.이 데이터를 json url로 변환합니다. : http://giclub.esy.es/show.php 지금은 이 내 코드는 세 개의 텍스트 뷰와 이미지 뷰를 포함하는 내 목록보기에이 JSON URL을로드 할하지만 난 내가 로그 캣Mysql 데이터베이스에서 데이터를로드하는 방법

public class ByCategoryMenu extends Activity { 
    RequestQueue requestQueue; 
    String url = "http://giclub.esy.es/show.php"; 
    TextView textView; 
    ListView listView; 
    ArrayList<listitme> listitmes = new ArrayList<listitme>(); 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.bycategorydetails); 

     textView = (TextView) findViewById(R.id.textView); 
     listView = (ListView) findViewById(R.id.listView); 

     requestQueue = Volley.newRequestQueue(this); 
     JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, 
       new Response.Listener<JSONObject>() { 
        @Override 
        public void onResponse(JSONObject response) { 

         try { 
       JSONArray jsonArray = response.getJSONArray("allstudents"); 
          for (int i = 0; i < jsonArray.length(); i++) { 
         JSONObject respons = jsonArray.getJSONObject(i); 
           String id = respons.getString("id"); 
           String name = respons.getString("name"); 
           String info = respons.getString("info"); 
           String img = respons.getString("img"); 
         listitmes.add(new listitme(id, name, info, img)); 
           listAllItme(); 
          } 
         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 
        } 
       }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       Log.e("VOLLEY", "ERROR"); 
      } 
     } 

     ); 
     requestQueue.add(jsonObjectRequest); 
    } 

    public void listAllItme() { 
     listAdpter lA = new listAdpter(listitmes); 
     listView.setAdapter(lA); 
    } 

    class listAdpter extends BaseAdapter { 
     ArrayList<listitme> listA = new ArrayList<listitme>(); 
     public listAdpter(ArrayList<listitme> listA) { 
      this.listA = listA; 
     } 
     @Override 
     public int getCount() { 
      return listA.size(); 
     } 
     @Override 
     public Object getItem(int position) { 
      return listA.get(position).id; 
     } 

     @Override 
     public long getItemId(int position) { 
      return position; 
     } 

     @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
      LayoutInflater layoutInflater = getLayoutInflater(); 
      View view = layoutInflater.inflate(R.layout.row_itm, null); 
      TextView id = (TextView) view.findViewById(R.id.textView_id); 
      TextView name = (TextView) view.findViewById(R.id.textView_name); 
      TextView info = (TextView) view.findViewById(R.id.textView_info); 
      ImageView img = (ImageView) view.findViewById(R.id.imageView); 
      id.setText(listA.get(position).id); 
      name.setText(listA.get(position).name); 
      info.setText(listA.get(position).info);    Picasso.with(ByCategoryMenu.this).load("http://giclub.esy.es/image/" + listA.get(position).img).into(img); 
      return view; 
     } 
    } 
} 

이 메시지와 함께 흰색 페이지를 가지고 실행할 때와 내가 만든 리스트 클래스 클래스

public class listitme { 
    public String id; 
    public String name; 
    public String info; 
    public String img; 
    public listitme(String id, String name, String info, String img) { 
     this.id = id; 
     this.name = name; 
     this.info = info; 
     this.img = img; 
    } 
} 

row_itm.xml

<TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:text="Small Text" 
     android:id="@+id/textView_id" 
     android:textColor="#fa0000" /> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="Large Text" 
     android:id="@+id/textView_name" 
     android:textColor="@color/accent_material_light" /> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Medium Text" 
     android:id="@+id/textView_info" /> 
    <ImageView 
     android:layout_width="200dp" 
     android:layout_height="200dp" 
     /> 

show.php

<ListView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/listView"/> 

bycategorydetalis.xml

<?php 
    include("config.php"); 
    header('Content-Type: application/json; charset=utf-8'); 
    $result = mysqli_query($db, 'SELECT * FROM student'); 
    $stu = array(); 
    while ($row = mysqli_fetch_array($result)) { 
     array_push($stu,$row); 
    } 
echo "{allstudents : ".json_encode($stu); 
?> 

로그 캣

D/dalvikvm: create interp thread : stack size=128KB 
D/dalvikvm: create new thread 
D/dalvikvm: new thread created 
D/dalvikvm: update thread list 
D/dalvikvm: threadid=20: interp stack at 0x626bf000 
D/dalvikvm: threadid=20: created from interp 
D/dalvikvm: start new thread 
D/dalvikvm: threadid=20: notify debugger 
D/dalvikvm: threadid=20 (Picasso-refQueue): calling run() 
D/AndroidRuntime: Shutting down VM 
W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x41d2dcf8) 
W/dalvikvm: threadid=1: uncaught exception occurred 
W/System.err: java.lang.IllegalArgumentException: Target must not be null. 
W/System.err:  at com.squareup.picasso.RequestCreator.into(RequestCreator.java:618) 
W/System.err:  at com.squareup.picasso.RequestCreator.into(RequestCreator.java:601) 
W/System.err:  at com.example.amr.fujeraapp.ByCategoryMenu$listAdpter.getView(ByCategoryMenu.java:136) 
W/System.err:  at android.widget.AbsListView.obtainView(AbsListView.java:2338) 
W/System.err:  at android.widget.ListView.makeAndAddView(ListView.java:1812) 
W/System.err:  at android.widget.ListView.fillDown(ListView.java:698) 
W/System.err:  at android.widget.ListView.fillFromTop(ListView.java:759) 
W/System.err:  at android.widget.ListView.layoutChildren(ListView.java:1645) 
W/System.err:  at android.widget.AbsListView.onLayout(AbsListView.java:2149) 
W/System.err:  at android.view.View.layout(View.java:15125) 
W/System.err:  at android.view.ViewGroup.layout(ViewGroup.java:4862) 
W/System.err:  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1888) 
W/System.err:  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1742) 
W/System.err:  at android.widget.LinearLayout.onLayout(LinearLayout.java:1651) 
W/System.err:  at android.view.View.layout(View.java:15125) 
W/System.err:  at android.view.ViewGroup.layout(ViewGroup.java:4862) 
W/System.err:  at android.widget.FrameLayout.layoutChildren(FrameLayout.java:515) 
W/System.err:  at android.widget.FrameLayout.onLayout(FrameLayout.java:450) 
W/System.err:  at android.view.View.layout(View.java:15125) 
W/System.err:  at android.view.ViewGroup.layout(ViewGroup.java:4862) 
W/System.err:  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1888) 
W/System.err:  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1742) 
W/System.err:  at android.widget.LinearLayout.onLayout(LinearLayout.java:1651) 
W/System.err:  at android.view.View.layout(View.java:15125) 
W/System.err:  at android.view.ViewGroup.layout(ViewGroup.java:4862) 
W/System.err:  at android.widget.FrameLayout.layoutChildren(FrameLayout.java:515) 
W/System.err:  at android.widget.FrameLayout.onLayout(FrameLayout.java:450) 
W/System.err:  at android.view.View.layout(View.java:15125) 
W/System.err:  at android.view.ViewGroup.layout(ViewGroup.java:4862) 
W/System.err:  at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2317) 
W/System.err:  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2023) 
W/System.err:  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1189) 
W/System.err:  at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6223) 
W/System.err:  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:788) 
W/System.err:  at android.view.Choreographer.doCallbacks(Choreographer.java:591) 
W/System.err:  at android.view.Choreographer.doFrame(Choreographer.java:560) 
W/System.err:  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:774) 
W/System.err:  at android.os.Handler.handleCallback(Handler.java:808) 
W/System.err:  at android.os.Handler.dispatchMessage(Handler.java:103) 
W/System.err:  at android.os.Looper.loop(Looper.java:193) 
W/System.err:  at android.app.ActivityThread.main(ActivityThread.java:5333) 
W/System.err:  at java.lang.reflect.Method.invokeNative(Native Method) 
W/System.err:  at java.lang.reflect.Method.invoke(Method.java:515) 
W/System.err:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828) 
W/System.err:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644) 
W/System.err:  at dalvik.system.NativeStart.main(Native Method) 
W/dalvikvm: threadid=1: calling UncaughtExceptionHandler 
E/AndroidRuntime: FATAL EXCEPTION: main 
        Process: com.example.amr.fujeraapp, PID: 13372 
        java.lang.IllegalArgumentException: Target must not be null. 
         at com.squareup.picasso.RequestCreator.into(RequestCreator.java:618) 
         at com.squareup.picasso.RequestCreator.into(RequestCreator.java:601) 
         at com.example.amr.fujeraapp.ByCategoryMenu$listAdpter.getView(ByCategoryMenu.java:136) 
         at android.widget.AbsListView.obtainView(AbsListView.java:2338) 
         at android.widget.ListView.makeAndAddView(ListView.java:1812) 
         at android.widget.ListView.fillDown(ListView.java:698) 
         at android.widget.ListView.fillFromTop(ListView.java:759) 
         at android.widget.ListView.layoutChildren(ListView.java:1645) 
         at android.widget.AbsListView.onLayout(AbsListView.java:2149) 
         at android.view.View.layout(View.java:15125) 
         at android.view.ViewGroup.layout(ViewGroup.java:4862) 
         at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1888) 
         at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1742) 
         at android.widget.LinearLayout.onLayout(LinearLayout.java:1651) 
         at android.view.View.layout(View.java:15125) 
         at android.view.ViewGroup.layout(ViewGroup.java:4862) 
         at android.widget.FrameLayout.layoutChildren(FrameLayout.java:515) 
         at android.widget.FrameLayout.onLayout(FrameLayout.java:450) 
         at android.view.View.layout(View.java:15125) 
         at android.view.ViewGroup.layout(ViewGroup.java:4862) 
         at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1888) 
         at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1742) 
         at android.widget.LinearLayout.onLayout(LinearLayout.java:1651) 
         at android.view.View.layout(View.java:15125) 
         at android.view.ViewGroup.layout(ViewGroup.java:4862) 
         at android.widget.FrameLayout.layoutChildren(FrameLayout.java:515) 
         at android.widget.FrameLayout.onLayout(FrameLayout.java:450) 
         at android.view.View.layout(View.java:15125) 
         at android.view.ViewGroup.layout(ViewGroup.java:4862) 
         at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2317) 
         at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2023) 
         at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1189) 
         at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6223) 
         at android.view.Choreographer$CallbackRecord.run(Choreographer.java:788) 
         at android.view.Choreographer.doCallbacks(Choreographer.java:591) 
         at android.view.Choreographer.doFrame(Choreographer.java:560) 
         at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:774) 
         at android.os.Handler.handleCallback(Handler.java:808) 
         at android.os.Handler.dispatchMessage(Handler.java:103) 
         at android.os.Looper.loop(Looper.java:193) 
         at android.app.ActivityThread.main(ActivityThread.java:5333) 
         at java.lang.reflect.Method.invokeNative(Native Method) 
         at java.lang.reflect.Method.invoke(Method.java:515) 
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828) 
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644) 
         at dalvik.system.NativeStart.main(Native Method) 

이 문제에 어떤 도움입니까?

+0

'에코로 json_encode (배열 ('allstudents'=> $의 STU));' – RiggsFolly

+0

json으로 태그를 클릭하고 1,000 다른 비슷한 질문 – RiggsFolly

+0

E/AndroidRuntime보고 : 치명적인 예외 : 주요 프로세스 : com.example. amr.fujeraapp, PID : 4642 java.lang.IllegalArgumentException : 대상이 null이 아니어야합니다. –

답변

0

for 회 돌이에서 응답을 처리 한 후 어댑터에 데이터를 설정하면 에 없으므로 for 루프 외부에서 listAllItme() 메서드를 호출하십시오.

+0

시도한 후 catch 하시겠습니까? –

+0

내부 try 시도 후 루프 for –

+0

E/AndroidRuntime : 치명적인 예외 : 주 프로세스 : com.example.amr.fujeraapp, PID : 13372 java.lang.IllegalArgumentException : 대상이 null이 아니어야합니다. com.squareup.picasso.RequestCreator.into (RequestCreator.java:618) 에서 com.squareup.picasso.RequestCreator.into (RequestCreator.java:601) 에서 com.example.amr.fujeraapp.ByCategoryMenu $ listAdpter. getview (ByCategoryMenu.java:136) android.widget.AbsListView.obtainView (AbsListView.java:2338) –

관련 문제