2016-12-17 45 views
0
public class HomeFragment extends Fragment implements View.OnClickListener { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.fragment_sample, container, false); 


     new OrderData().execute(); 

     return view; 
    } 




    class OrderData extends AsyncTask<String, String, String> { 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
     } 

     @Override 
     protected String doInBackground(String... params) { 
      try { 
       String Response = JSONfunctions.getJSONfromURL(Constant.OrderUL + "2"); 


       JSONObject _jobjec = new JSONObject(Response); 
       OrderModel _orderModel = new OrderModel(); 


       _orderModel.setJobID(_jobjec.getString("JobID")); 
       _orderModel.setCustomerName(_jobjec.getString("CustomerName")); 

       _orderModel.setCustomerAddressName(_jobjec.getString("CustomerAddressName")); 
       _orderModel.setCustomerPhoneNumber(_jobjec.getString("CustomerPhoneNumber")); 
       _orderModel.setCustomerHouseNumber(_jobjec.getString("CustomerHouseNumber")); 
       _orderModel.setCustomerArea(_jobjec.getString("CustomerArea")); 
       _orderModel.setCustomerLandmark(_jobjec.getString("CustomerLandmark")); 
       _orderModel.setCustomerCity(_jobjec.getString("CustomerCity")); 
       _orderModel.setServiceType(_jobjec.getString("ServiceType")); 
       _orderModel.setQuantity(_jobjec.getString("Quantity")); 
       _orderModel.setPayementMethod(_jobjec.getString("PayementMethod")); 
       _orderModel.setJobAmount(_jobjec.getString("JobAmount")); 
       _orderModel.setJobStatus(_jobjec.getString("JobStatus")); 
//    JobStatus =_jobjec.getString("JobStatus"); 
       orderList.add(_orderModel); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
      return null; 
     } 

     @Override 
     protected void onPostExecute(String s) { 
      super.onPostExecute(s); 
      order_listview.setAdapter(_adapter); 
      _adapter = new ListViewAdapter(getActivity(), R.layout.listitem, orderList); 
      order_listview.setAdapter(_adapter); 

     } 
    } 

にリストビューの項目をクリック上のアクティビティをリロードする方法を、これは私のアダプタである:私は、各項目のアダプタで機能をクリックしonItem適用しているアンドロイド

public class ListViewAdapter extends ArrayAdapter<OrderModel> { 
    // Declare Variables 
    Context mcontext; 
    LayoutInflater inflater; 
    List<OrderModel> datamodel; 

    public ListViewAdapter(Context context, int resourceId, 
          List<OrderModel> worldpopulationlist) { 


     super(context, resourceId, worldpopulationlist); 
     this.mcontext = context; 
     this.datamodel = worldpopulationlist; 
     inflater = LayoutInflater.from(context); 
    } 

    private class ViewHolder { 
     TextView textView1; 
     TextView textView2; 
     TextView textView3; 
     TextView textView4; 

     TextView status; 
    } 

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

    public View getView(final int position, View view, ViewGroup parent) { 
     final ViewHolder holder; 
     if (view == null) { 
      holder = new ViewHolder(); 
      view = inflater.inflate(R.layout.listitem, null); 
      // 
      holder.textView1 = (TextView) view.findViewById(R.id.textView1); 
      holder.textView2 = (TextView) view.findViewById(R.id.textView3); 
      holder.textView3 = (TextView) view.findViewById(R.id.textView2); 
      holder.textView4 = (TextView) view.findViewById(R.id.textView17); 
      holder.status = (TextView) view.findViewById(R.id.aceeptimageview); 

      view.setTag(holder); 
     } else { 
      holder = (ViewHolder) view.getTag(); 
     } 
     // Capture position and set to the TextViews 
     holder.textView1.setText(datamodel.get(position).getJobID() + ":" + datamodel.get(position).getCustomerName()); 
     holder.textView2.setText(datamodel.get(position).getCustomerPhoneNumber()); 
     holder.textView3.setText(datamodel.get(position).getCustomerAddressName() + " " + 
         datamodel.get(position).getCustomerLandmark() + " " + 
         datamodel.get(position).getCustomerCity() 

     ); 
     holder.textView4.setText(datamodel.get(position).getServiceType() + " " + datamodel.get(position).getJobAmount()); 


     String Status = datamodel.get(position).getJobStatus(); 


     if (Status.equals("Pending")) { 
      holder.status.setText("Accept"); 

      holder.status.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 


        try { 
         holder.status.setText("Started"); 
         JSONObject _jobject = new JSONObject(); 

         _jobject.put("JobID", datamodel.get(position).getJobID().toString()); 
         _jobject.put("Status", "Accepted"); 
         new StatsuBackground().execute(_jobject.toString()); 
        } catch (Exception e) { 
         e.printStackTrace(); 
        } 

       } 
      }); 
     } 

     if (Status.equals("Accepted")) { 
      holder.status.setText("Started"); 
      holder.status.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        Toast.makeText(v.getContext(), "Started", Toast.LENGTH_LONG).show(); 
        holder.status.setText("Closed"); 
        try { 
         JSONObject _jobject = new JSONObject(); 

         _jobject.put("JobID", datamodel.get(position).getJobID().toString()); 
         _jobject.put("Status", "Started"); 
         new StatsuBackground().execute(_jobject.toString()); 
        } catch (Exception e) { 
         e.printStackTrace(); 
        } 

       } 
      }); 
     } 

     if (Status.equals("Started")) { 
      holder.status.setText("Closed"); 
      holder.status.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        Toast.makeText(v.getContext(), "Cloesd", Toast.LENGTH_LONG).show(); 
        try { 
         JSONObject _jobject = new JSONObject(); 

         _jobject.put("JobID", datamodel.get(position).getJobID().toString()); 
         _jobject.put("Status", "Closed"); 
         new StatsuBackground().execute(_jobject.toString()); 
        } catch (Exception e) { 
         e.printStackTrace(); 
        } 


       } 
      }); 
     } 


     return view; 
    } 



    class StatsuBackground extends AsyncTask<String, String, String> { 

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

      String Response = PosttoServer.getJSONfromURL(Constant.StatusUrl, params[0]); 
      return null; 
     } 
    } 
} 

。私が特定のアイテムをクリックしたときに必要なことは、私の活動がサーバーから更新された値を取得できるように、再読み込みしてapiを再度押す必要があることです。私はこれを適用して更新することができますか?私もnotfydatasetchangeを試みたが、うまく動かなかった。

答えて

0
  public class ListViewAdapter extends ArrayAdapter<OrderModel> { 
// Declare Variables 
Context mcontext; 
LayoutInflater inflater; 
List<OrderModel> datamodel; 

public ListViewAdapter(Context context, int resourceId, 
         List<OrderModel> worldpopulationlist) { 


    super(context, resourceId, worldpopulationlist); 
    this.mcontext = context; 
    this.datamodel = worldpopulationlist; 
    inflater = LayoutInflater.from(context); 
} 

private class ViewHolder { 
    TextView textView1; 
    TextView textView2; 
    TextView textView3; 
    TextView textView4; 

    TextView status; 
} 

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

public View getView(final int position, View view, ViewGroup parent) { 
    final ViewHolder holder; 
    if (view == null) { 
     holder = new ViewHolder(); 
     view = inflater.inflate(R.layout.listitem, null); 
     // 
     holder.textView1 = (TextView) view.findViewById(R.id.textView1); 
     holder.textView2 = (TextView) view.findViewById(R.id.textView3); 
     holder.textView3 = (TextView) view.findViewById(R.id.textView2); 
     holder.textView4 = (TextView) view.findViewById(R.id.textView17); 
     holder.status = (TextView) view.findViewById(R.id.aceeptimageview); 

     view.setTag(holder); 
    } else { 
     holder = (ViewHolder) view.getTag(); 
    } 
    // Capture position and set to the TextViews 
    holder.textView1.setText(datamodel.get(position).getJobID() + ":" + datamodel.get(position).getCustomerName()); 
    holder.textView2.setText(datamodel.get(position).getCustomerPhoneNumber()); 
    holder.textView3.setText(datamodel.get(position).getCustomerAddressName() + " " + 
        datamodel.get(position).getCustomerLandmark() + " " + 
        datamodel.get(position).getCustomerCity() 

    ); 
    holder.textView4.setText(datamodel.get(position).getServiceType() + " " + datamodel.get(position).getJobAmount()); 


    String Status = datamodel.get(position).getJobStatus(); 


    if (Status.equals("Pending")) { 
     holder.status.setText("Accept"); 

     holder.status.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 


       try { 
        holder.status.setText("Started"); 
        JSONObject _jobject = new JSONObject(); 

        _jobject.put("JobID", datamodel.get(position).getJobID().toString()); 
        _jobject.put("Status", "Accepted"); 
        new StatsuBackground().execute(_jobject.toString()); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 

      } 
     }); 
    } 

    if (Status.equals("Accepted")) { 
     holder.status.setText("Started"); 
     holder.status.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Toast.makeText(v.getContext(), "Started", Toast.LENGTH_LONG).show(); 
       holder.status.setText("Closed"); 
       try { 
        JSONObject _jobject = new JSONObject(); 

        _jobject.put("JobID", datamodel.get(position).getJobID().toString()); 
        _jobject.put("Status", "Started"); 
        new StatsuBackground().execute(_jobject.toString()); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 

      } 
     }); 
    } 

    if (Status.equals("Started")) { 
     holder.status.setText("Closed"); 
     holder.status.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Toast.makeText(v.getContext(), "Cloesd", Toast.LENGTH_LONG).show(); 
       try { 
        JSONObject _jobject = new JSONObject(); 

        _jobject.put("JobID", datamodel.get(position).getJobID().toString()); 
        _jobject.put("Status", "Closed"); 
        new StatsuBackground().execute(_jobject.toString()); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 


      } 
     }); 
    } 


    return view; 
} 



class StatsuBackground extends AsyncTask<String, String, String> { 

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

     String Response = PosttoServer.getJSONfromURL(Constant.StatusUrl, params[0]); 
     return null; 
    } 

    @Override 
protected void onPostExecute(String result) { 
    //check if success 
    finish(); 
    startActivity(((Activity)context).getIntent()) 
} 


} 

}

(この

+0

mcontext.finishを試してください)。エラー –

+0

エラーを表示します。 –

+0

((Activity)コンテキスト).finish()これを試してください –