2016-02-11 81 views
2

這裏是我懷疑當我點擊recyclerview項目需要獲得我保存在sqlite中的任務ID我怎麼能做到這一點,例如當我點擊回收視圖需要將該值傳遞到下一頁,並需要更新該值我該怎麼辦這個到目前爲止我曾嘗試是:如何在點擊recyclerview項目時獲取sqlite的id?

public class Task extends Fragment { 
    private static final String MY_PREFERENCE_KEY = "yogan"; 
    private List<Model_Task_List> model_task_lists; 

    private RecyclerView recyclerView; 
    Task_List_Adapter taskadapter; 
    private RecyclerView.LayoutManager layoutManager; 
    SharedPreferences sharedPreferences; 
    private RecyclerView.Adapter adapter; 
    RequestQueue yog; 
    String user_id; 
    AppController app; 
    RequestQueue queue; 
    String Url; 
    Task_DB task_db = null; 
    Database_SF_APP database_sf_app; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.fragment_task, container, false); 
     recyclerView = (RecyclerView) view.findViewById(R.id.my_recycler_view); 
     LinearLayoutManager layoutManager = new LinearLayoutManager(getContext()); 
     layoutManager.setOrientation(LinearLayoutManager.VERTICAL); 
     recyclerView.setItemAnimator(new DefaultItemAnimator()); 
     recyclerView.setLayoutManager(layoutManager); 
     if (model_task_lists == null) { 
      model_task_lists = new ArrayList<Model_Task_List>(); 
     } 
     Calendar c = Calendar.getInstance(); 
     System.out.println("Current time => " + c.getTime()); 

     SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 
     String formattedDate = df.format(c.getTime()); 
     int hour=c.get(Calendar.HOUR_OF_DAY); 
     String hours=Integer.toString(hour); 
     database_sf_app = new Database_SF_APP(getActivity().getBaseContext()); 
     int count=database_sf_app.getTaskCount(); 
     sharedPreferences = getActivity().getSharedPreferences(LoginActivity.login, 0); 
     user_id = sharedPreferences.getString("user_id", null); 
     model_task_lists=database_sf_app.getTaskListById(user_id); 
     taskadapter=new Task_List_Adapter(model_task_lists,getActivity()); 
     recyclerView.setAdapter(taskadapter); 
     if(taskadapter!=null){ 
      taskadapter.setOnItemClickListener(new Task_List_Adapter.data() { 
       @Override 
       public void yog(View v, int position) { 


       } 
      }); 
     } 
     queue = Volley.newRequestQueue(getContext()); 
     Url = "http://xxx.xx.x.xx/xxx/GetActivitiesByUserID.svc/getlist/Task/" + user_id +"/" +null+"/"+hours; 
     ConnectivityManager cn = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo nf = cn.getActiveNetworkInfo(); 
     if (nf != null && nf.isConnected()) { 
      Toast.makeText(getActivity(), "Network Available", Toast.LENGTH_LONG).show(); 
      JsonObjectRequest jsonObjRequest = new JsonObjectRequest(Request.Method.POST, Url, new JSONObject(), 
        new Response.Listener<JSONObject>() { 

         @Override 
         public void onResponse(JSONObject response) { 
          String server_response = response.toString(); 
          try { 
           JSONObject json_object = new JSONObject(server_response); 
           JSONArray json_array = new JSONArray(json_object.getString("TaskResult")); 
           for (int i = 0; i < json_array.length(); i++) { 
            Model_Task_List modelobj = new Model_Task_List(); 
            JSONObject json_arrayJSONObject = json_array.getJSONObject(i); 
            modelobj.setSubject(json_arrayJSONObject.getString("Subject")); 
            modelobj.setTaskID(json_arrayJSONObject.getInt("TaskID")); 
            modelobj.setUserName(json_arrayJSONObject.getString("DueDate")); 
            modelobj.setTaskStatus(json_arrayJSONObject.getString("TaskStatus")); 
            modelobj.setUserid(json_arrayJSONObject.getString("Owner")); 
            database_sf_app.insertorUpdate(modelobj); 


           } 
          } catch (JSONException e) { 
           e.printStackTrace(); 
          } 

         } 
        }, 
        new Response.ErrorListener() { 
         @Override 
         public void onErrorResponse(VolleyError error) { 
          Toast.makeText(getContext(), error.toString(), Toast.LENGTH_SHORT).show(); 

         } 
        }); 

      //Creating request queue 

      queue.add(jsonObjRequest); 

     } 

     //sync operation 
     //a union b 
     //a server 
     //b local storage 

     //a only - insert local 
     //b only - send to server 
     //a = b do nothing 

     //result 
     //bind 


     return view; 
    } 


    @Override 
    public void onResume() 
    { 
      super.onResume(); 
    } 


    @Override 
    public void onStop() { 

     super.onStop(); 
    } 

} 

這裏是我的TaskAdapter:

import android.content.Context; 
     import android.support.v7.widget.RecyclerView; 
     import android.view.LayoutInflater; 
     import android.view.View; 
     import android.view.ViewGroup; 
     import android.widget.ImageView; 
     import android.widget.TextView; 

     import java.util.List; 

public class Task_List_Adapter extends RecyclerView.Adapter<Task_List_Adapter.MyViewHolder> { 
    private List<Model_Task_List> dataSet; 
    private Context context; 

    private static data yog; 

    Model_Task_List modelTaskList=new Model_Task_List(); 

    public void remove(int position) 
    { 
     dataSet.remove(position); 
     notifyItemRemoved(position); 
    } 
    public void edit(int position){ 
     dataSet.set(position, modelTaskList); 
     notifyItemChanged(position); 
    } 

    public void setOnItemClickListener(data listener) { 
     this.yog = listener; 
    } 

    public static class MyViewHolder extends RecyclerView.ViewHolder { 
     // Model_Task_List Model_Task_List=new Model_Task_List(); 
     TextView textname; 
     TextView textaddress; 
     TextView textphnum; 
     TextView textdegree; 
     TextView textemail; 
     ImageView call; 
     data datas; 

     public MyViewHolder(final View itemView) { 
      super(itemView); 
      this.textname = (TextView) itemView.findViewById(R.id.subject); 
      this.textaddress = (TextView) itemView.findViewById(R.id.username); 
      this.textphnum = (TextView) itemView.findViewById(R.id.status); 


      itemView.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        if(yog!=null){ 
         yog.yog(itemView,getLayoutPosition()); 
        } 
       } 
      }); 

      // this.imageViewIcon = (ImageView) itemView.findViewById(R.id.imageView); 

     } 



    } 
    public interface data 
    { 
     void yog(View v,int position); 
    } 
    public Task_List_Adapter(List<Model_Task_List> data,Context context) { 

     this.dataSet = data; 
     this.context=context; 
    } 

    @Override 
    public MyViewHolder onCreateViewHolder(ViewGroup parent, 
              int viewType) { 
     View view = LayoutInflater.from(parent.getContext()) 
       .inflate(R.layout.task_list_view, parent, false); 

     MyViewHolder myViewHolder = new MyViewHolder(view); 
     return myViewHolder; 
    } 

    @Override 
    public void onBindViewHolder(MyViewHolder holder, int position) { 
     TextView textViewName = holder.textname; 
     TextView textViewaddress = holder.textaddress; 
     TextView textViewphnum = holder.textphnum; 
     TextView textdegree = holder.textdegree; 
     TextView textemail=holder.textemail; 

     textViewName.setText("Subject:"+dataSet.get(position).getSubject()); 
     textViewaddress.setText("DueDate"+dataSet.get(position).getUserName()); 
     textViewphnum.setText("Status:"+dataSet.get(position).getTaskStatus()); 


    } 




    @Override 
    public int getItemCount() { 
     return dataSet.size(); 
    } 
} 

的是它獲得ID正確方法:

taskadapter.setOnItemClickListener(new Task_List_Adapter.data() { 
       @Override 
       public void yog(View v, int position) { 

Model_Task_List model_task_list=(Model_Task_List)model_task_lists.get(position); 


        String yog=model_task_list.getSubject().toString(); 
        int yogeshs=model_task_list.getTaskID(); 
        String yogan=Integer.toString(yogeshs); 
        Toast.makeText(getContext(),yogan,Toast.LENGTH_SHORT).show(); 
       } 
      }); 
     } 
Where i make recyclerview clickable how to get id of sqlite when i click and need to pass the value to next page 
+0

你的問題不清楚。請發佈您嘗試的其他內容,而不是您在問題中包含的代碼。 –

+0

檢查我的編輯當我點擊回收視圖需要傳遞值到下一頁與sqlite編號 – Yog

回答

2

您在recyclerview的顯示對象,

你的情況

代碼必須在TaskAdapter,該對象

看跌的ID,這樣當你點擊它,你會得到對象,以便從該對象

找回ID
clickedObjecj.getId(); 
+0

是獲取id並將值傳遞到下一頁的方式 – Yog

相關問題