2016-08-02 16 views
0

mysql 데이터베이스에서 json을 통해 데이터를 가져 오려고합니다.데이터베이스에서 데이터를 가져와 ListView에 표시하는 방법은 무엇입니까?

내가 직면하고있는 문제는

ListViewAdapter3.Java 이제
public class Visit extends TabFragment { 
    public Visit(){}; 

    JSONObject jsonobject; 
    JSONArray ownerObj; 
    ListView listview; 

    ListViewAdapter3 listadapter; 
    ArrayList<HashMap<String, String>> arraylist; 
    String uname = "null"; 
    SessionManager session; 
    private static String url_visitor = "http://10.0.2.2/portal/fetchinforder.php"; 

    JSONParser jParser = new JSONParser(); 

    ArrayList<String> itemwod = new ArrayList<String>(); 
    ArrayList<String> itemorder = new ArrayList<String>(); 
    ArrayList<String> item_remark= new ArrayList<String>(); 
    ArrayList<String> o_username= new ArrayList<String>(); 
    View view; 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     // don't look at this layout it's just a listView to show how to handle the keyboard 

     session = new SessionManager(getActivity().getApplicationContext()); 
     // get user data from session 
     HashMap<String, String> user = session.getUserDetails(); 
     // name 
     String name = user.get(SessionManager.KEY_NAME); 
     // email 
     String email = user.get(SessionManager.KEY_EMAIL); 

     View view = inflater.inflate(R.layout.activity_visit, container, false); 
     getActivity().setTitle("Visit"); 
     listview = (ListView) view.findViewById(R.id.lvvisit); 
     new DownloadJSON().execute(); 
     return view; 
    } 

    @Override 
    public void onSaveInstanceState(Bundle outState) { 
     //add the values which need to be saved from the drawer to the bundle 
     // outState = result.saveInstanceState(outState); 
     super.onSaveInstanceState(outState); 
    } 

    private class DownloadJSON extends AsyncTask<Void, Void, Void> { 

     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      // Create a progressdialog 
      //mProgressDialog = new ProgressDialog(getActivity()); 
      // mProgressDialog.setTitle("Please Wait"); 
      // Set progressdialog message 
      //mProgressDialog.setMessage("Loading..."); 
      //mProgressDialog.setIndeterminate(false); 
      // Show progressdialog 
      //mProgressDialog.show(); 
     } 

     @Override 
     protected Void doInBackground(Void... args) { 
      // Create an array 
      try { 
       arraylist = new ArrayList<HashMap<String, String>>(); 

       List<NameValuePair> params = new ArrayList<NameValuePair>(); 
       params.add(new BasicNameValuePair("username", uname)); 
       JSONObject json = jParser.makeHttpRequest(url_visitor, "POST", params); 

       int success1 = Integer.parseInt(json.getString("success3")); 
       Log.d("success3", json.toString()); 

       if (success1 == 0) 
       { 
        Snackbar.make(view, "Not Data Found", Snackbar.LENGTH_LONG).show(); 
       } 
       if (success1 == 1) { 
        ownerObj = json.getJSONArray("Ordera"); 
        // arraylist = new ArrayList<HashMap<String, String>>(); 
        // Retrieve JSON Objects from the given URL address 
        // Locate the array name in JSON 
        // jsonarray = jsonobject.getJSONArray("images"); 

        for (int i = 0; i < ownerObj.length(); i++) { 
         // HashMap<String, String> map = new HashMap<String, String>(); 
         jsonobject = ownerObj.getJSONObject(i); 
         // Retrive JSON Objects 
         if (jsonobject.getString("username").equalsIgnoreCase(uname)) 
         { 
          itemwod.add(jsonobject.getString("itemwod")); 
          item_remark.add(jsonobject.getString("itemremark")); 
          itemorder.add(jsonobject.getString("itemorder")); 
          o_username.add(jsonobject.getString("o_username")); 
          } 
         } 
        } 
       } 
      catch (Exception e) 
      { 
      } 
      return null; 
     } 

     @Override 
     protected void onPostExecute(Void args) { 
      // Locate the listview in listview_main.xml 

      listview = (ListView) getActivity().findViewById(R.id.lvvisit); 
      listadapter = new ListViewAdapter3(getActivity(), itemwod,item_remark,itemorder,o_username); 
      // Set the adapter to the ListView 
      listview.setAdapter(listadapter); 
      // Close the progressdialog 

      // mProgressDialog.dismiss(); 
     } 
    } 
} 

, Visit.Java

Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject 
다음

난 내 전체 코드를 게시하고 ..

입니다

package com.example.sachin.omcommunication; 

import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.TextView; 

import java.util.ArrayList; 
import java.util.HashMap; 

public class ListViewAdapter3 extends BaseAdapter { 
    Context cntx; 

    ArrayList<String> itemwod = new ArrayList<String>(); 
    ArrayList<String> itemorder = new ArrayList<String>(); 
    ArrayList<String> item_remark= new ArrayList<String>(); 
// ArrayList<String> item_date = new ArrayList<String>(); 

    LayoutInflater inflater; 
    ArrayList<HashMap<String, String>> data; 


    public ListViewAdapter3(Context context, 
          ArrayList<String> itm_wod, 
          ArrayList<String> itm_order, 
          ArrayList<String> itm_remark, 
          ArrayList<String> o_username 
    ) { 
     // TODO Auto-generated constructor stub 
     cntx = context; 


     itemwod = itm_wod; 
     itemorder = itm_order; 
     item_remark = itm_remark; 
     o_username = o_username; 


    } 

    @Override 
    public int getCount() { 
     return itemorder.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     return itemorder.get(position); 
    } 

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

    @SuppressWarnings("deprecation") 
    public View getView(final int position, View convertView, ViewGroup parent) { 

     TextView lvtaskname,lvtaskdetails,lvtaskremark,lvtaskdate; 

     inflater = (LayoutInflater) cntx 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     LayoutInflater inflater = LayoutInflater.from(cntx); 

     convertView = inflater.inflate(R.layout.raw_order, parent, 
       false); 


     lvtaskname= (TextView) convertView.findViewById(R.id.lvtaskname); 
     lvtaskdetails = (TextView) convertView.findViewById(R.id.lvtaskdetails); 
     lvtaskremark = (TextView) convertView.findViewById(R.id.lvtaskremark); 
     //lvtaskdate = (TextView) convertView.findViewById(R.id.lvtaskdate); 

     lvtaskname.setText(itemwod.get(position)); 
     lvtaskdetails.setText(itemorder.get(position)); 
     lvtaskremark.setText(item_remark.get(position)); 
     //lvtaskdate.setText(item_date.get(position)); 


     return convertView; 
    } 

} 

마지막으로 내 레이아웃

  <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="0dp" 
        android:layout_marginTop="10dp" 
        android:layout_weight="73" 
        android:orientation="vertical"> 

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

나는 그것의이 같은 오류가 작동하지 BT했습니다.

+0

당신이 당신의 XML 파일에 데이터베이스 데이터를 표시 하시겠습니까 ...? – LvN

+0

Volley는 JSON 요청에 대한 클래스를 제공합니다. https://developer.android.com/training/volley/에서 자세히 알아보기 –

+0

예 ... ryt ... 일일 방문을 계산하고 해당 텍스트 뷰에 숫자를 표시하고 싶습니다. –

답변

0

오류 메시지에 따르면, 당신의 JSON 문자열에 당신은 당신이 아닌 안드로이드 코드에서 서버 측 JSON 출력을 선택해야합니다

유효한 JSON 구조 (<br를!)하지 않은 것 같다. 확인을 위해

당신은 http://jsonlint.com/을 사용할 수 있습니다 JSON

관련 문제