2016-08-03 5 views
0

xml 파일 첫 번째 파일은 디자인의 xml 파일입니다. 나는 데이터베이스에서 데이터를 가져와 listview에 표시하려고합니다.

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

    </LinearLayout> 
</RelativeLayout> 

rawtask.xml 파일 이것은 listviewadapter.java 도시되어

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 


    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="10dp" 
     android:layout_marginTop="10dp" 
     android:layout_marginBottom="10dp" 
     android:background="@drawable/property_display_box" 
     android:id="@+id/listview1ll"> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:hint="Task Name" 
      android:layout_marginLeft="10dp" 
      android:layout_marginRight="10dp" 
      android:layout_marginTop="10dp" 
      android:layout_marginBottom="10dp" 
      android:textSize="30dp" 
      android:id="@+id/lvtaskname" /> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="80dp" 
      android:layout_marginLeft="10dp" 
      android:layout_marginRight="10dp" 
      android:layout_marginTop="10dp" 
      android:layout_marginBottom="10dp" 
      android:textSize="30dp" 
      android:hint="Task Details" 
      android:layout_gravity="center" 
      android:id="@+id/lvtaskdetails" 
      /> 
     <CheckBox 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="Add Details" 
      android:layout_marginLeft="40dp" 
      android:layout_marginRight="10dp" 
      android:layout_marginTop="10dp" 
      android:layout_marginBottom="10dp" 
      android:textSize="30dp" 
      android:id="@+id/lvchkbox"/> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_marginBottom="10dp" 
      android:orientation="horizontal" 
      android:id="@+id/lvl1"> 
      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="10dp" 
       android:layout_marginRight="10dp" 
       android:layout_marginTop="10dp" 
       android:layout_marginBottom="10dp" 
       android:text="Remaining Time:" 
       android:textSize="20dp" 
       android:id="@+id/lvrt"/> 
      <Button 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Done" 
       android:layout_marginLeft="90dp" 
       android:layout_marginTop="10dp" 
       android:textSize="20dp" 
       android:id="@+id/lvdone"/> 
     </LinearLayout> 
    </LinearLayout> 
</RelativeLayout> 

Listviewadapter.java 리스트 뷰의 원시 파일 여기 디자인

public class ListViewAdapter2 extends BaseAdapter { 

    Context cntx; 
    AlertDialog.Builder alertDialogBuilder; 
    //int loader = R.drawable.ic_menu_gallery; 

    ArrayList<String> t_id=new ArrayList<String>(); 
    ArrayList<String> t_tname=new ArrayList<String>(); 
    ArrayList<String> t_detail=new ArrayList<String>(); 

    // ArrayList<Float> itemRating=new ArrayList<Float>(); 
    LayoutInflater inflater; 
    ArrayList<HashMap<String, String>> data; 
    //ImageLoader imageLoader; 
    HashMap<String, String> resultp = new HashMap<String, String>(); 

    /* 
    * public ListViewAdapter(Context context, ArrayList<HashMap<String, 
    * String>> arraylist) { this.cntx = context; data = arraylist; imageLoader 
    * = new ImageLoader(context); } 
    */ 

    public ListViewAdapter2(Context context, 
          ArrayList<String> taskid, 
          ArrayList<String> taskname, 
          ArrayList<String> taskdetail) { 
     // TODO Auto-generated constructor stub 
     cntx = context; 
     t_id=taskid; 
     t_tname = taskname; 
     t_detail =taskdetail; 


     //Log.d("xyz", security_id.toString()); 

     //ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context).build(); 
     //ImageLoader.getInstance().init(config); 

     alertDialogBuilder = new AlertDialog.Builder(context); 
     alertDialogBuilder.setMessage("Do You Want To Call...."); 
     // itemRating=itm_rating; 

    } 

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

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

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

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

     @SuppressWarnings("unused") 
     final TextView taskname, taskdetail; 

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

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

     /*ImageLoader imageLoader = ImageLoader.getInstance(); 
     DisplayImageOptions options = new DisplayImageOptions.Builder().cacheInMemory(true) 
       .cacheOnDisc(true).resetViewBeforeLoading(true) 
       .showImageForEmptyUri(loader) 
       .showImageOnFail(loader) 
       .showImageOnLoading(loader).build();*/ 

     taskname= (TextView) convertView.findViewById(R.id.lvtaskname); 
     taskdetail= (TextView) convertView.findViewById(R.id.lvtaskdetails); 

     taskname.setText("taskName : "+t_tname.get(position)); 
     taskdetail.setText("taskdetail: "+t_detail.get(position)); 

     return convertView; 
    } 

    } 

주요 활동 .java 이것은 최종 .java입니다. 프로젝트

package com.example.sachin.listview; 

public class Main2Activity extends Fragment { 

public Main2Activity(){}; 
private static final String TAG_SUCCESS = "success"; 

JSONArray jsonarray; 
JSONObject jsonobject; 
ListView listview; 
String img; 
ListViewAdapter2 listadapter; 
//ProgressDialog mProgressDialog; 
ArrayList<HashMap<String, String>> arraylist; 
private static String url_task = "http://10.0.2.2/portal/aFetchtask.php"; 
// private static String url_profile ="http://10.0.2.2/myapp/fetchmember.php"; 

JSONParser jParser = new JSONParser(); 

ArrayList<String> t_id = new ArrayList<String>(); 
ArrayList<String> t_tname = new ArrayList<String>(); 
ArrayList<String> t_detail = new ArrayList<String>(); 
View view; 
@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 
    View view = inflater.inflate(R.layout.activity_main, container, false); 
    getActivity().setTitle("tasks"); 
    new DownloadJSON().execute(); 
    return view; 
} 


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("abc", "abc")); 
      JSONObject json = jParser.makeHttpRequest(url_task, "POST", params); 

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

      if (success1 == 0) { 
       Snackbar.make(view, "Not Data Found", Snackbar.LENGTH_LONG).show(); 
      } 

      if (success1 == 1) { 
       JSONArray ownerObj = json.getJSONArray("tasks"); 
       // 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 

        //securityId.add(jsonobject.getString("security_id")); 
        // t_id.add(jsonobject.getString("t_id")); 
        t_tname.add(jsonobject.getString("t_tname")); 
        t_detail.add(jsonobject.getString("t_detail")); 
        // Number.add(jsonobject.getString("number")); 

        Log.d("DATA", jsonobject.toString()); 
        //img="http://10.0.2.2/momskitchen/image/"; 
        //proImage.add(img + jsonobject.getString("image")); 
          /* System.out.println(jsonobject.getString(TA)); 
           System.out.println(g);*/ 

       } 
      } 
     } catch (Exception e) { 
     } 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Void args) { 
     listview = (ListView) getActivity().findViewById(R.id.listviewtask); 

     ListViewAdapter2 listadapter = new ListViewAdapter2(getActivity(), t_id, t_tname, t_detail); 
     // Set the adapter to the ListView 
     listview.setAdapter(listadapter); 
     // Close the progressdialog 

     //mProgressDialog.dismiss(); 
    } 
} 
@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); 
} 

} 

과 마지막의 파일은 여기

<?php 

include("connection.php"); 


    $response = array();  

    // get all products from products table 
    $result = mysql_query("SELECT * FROM task") or die(mysql_error()); 

    // check for empty result 
    if (mysql_num_rows($result) > 0) { 
     // looping through all results 
     // products node 
     $response["tasks"] = array(); 

     while ($row = mysql_fetch_array($result)) 
     { 

      $tasks = array(); 
      $tasks["t_id"] = $row["t_id"]; 
      $tasks["t_tname"] = $row["t_tname"]; 
      $tasks["t_udetail"] = $row["t_udetail"]; 

      // push single product into final response array 
      array_push($response["tasks"], $tasks); 
     } 

      $response["success"] = 1; 
     // echoing JSON response 
     echo json_encode($response); 


    } 

    else 
    { 
     // no products found 
     $response["success"] = 0; 
     $response["message"] = "No picture found"; 

     // echo no users JSON 
     echo json_encode($response); 
    } 
    ?>   

는 모든 파일을 사용할 수 있습니다 .. 파일 내 API를 파일입니다. 데이터베이스에서 데이터를 가져 오지 않습니다. 제발 나를 도와주세요.

+1

[최소, 완전하며 검증 가능한 예] (http://stackoverflow.com/help/mcve)를 제공해주십시오. 면밀히 디버그하여 확인할 부분을 알 수 있습니다. – KaeL

답변

0

많은 코딩 결함이 있습니다.

  • Asynchronus 클래스는 반환 형식이 데이터를 검색하는 정확한 방식이 아닙니다.
  • protected Void doInBackground(Void... args) {}이 null을 반환하면 null 값을 onPostExcute(Void args)으로 가져올 수 있습니다. 응답을 반환하지 않는 경우에만 doInBackground() 메서드에서 전체 휴식을 취해야합니다.
  • rawtask.xml 파일에는 어댑터에 의해 팽창하는 뷰가 포함되어야하지만 다른 뷰가 언급됩니다. webservices에서 listView로 데이터를 가져 오려면이 다음 링크를 참조하십시오. here
관련 문제