2016-06-01 2 views
1

listitem이 새로운 활동을 클릭 할 때 목록보기와 함께 조각을 가져 오는 중입니다. 변경 후 현재 목록 상태 값으로 시작됩니다. 조각으로 돌아가고 조각 값을 다시로드하는 방법입니다. 을 listitem 새로운 활동을 클릭 할 때 목록보기 조각을 데작업이 완료되면 다시로드 단락

public class ManageCms extends Fragment implements SearchView.OnQueryTextListener{ 
       int events; 
       CommonSharedPref commonSharedPref; 
       ListView list; 
       ManageCmsAdapter manageCmsAdapter; 
       List<ManageCmsModel> manageCmsModelList = new ArrayList<ManageCmsModel>(); 
       ArrayList<ManageCmsModel> arraylist = new ArrayList<ManageCmsModel>(); 
       int start=0; 
       int totcheckCount; 
       SearchView searchView; 
       ProgressDialog pDialog; 
       RequestQueue requestQueue; 
       String Url=""; 
       public ManageCms() { 

       } 
       @Override 
       public View onCreateView(LayoutInflater inflater, ViewGroup container, 
             Bundle savedInstanceState) { 

        View view = inflater.inflate(R.layout.fragment_manage_cms, container, 
          false); 
        commonSharedPref =new CommonSharedPref(getActivity()); 
        ((MainActivity) getActivity()) 
          .setActionBarTitle("Manage CMS"); 
        getCMS(); 
        FabSpeedDial fabSpeedDial=(FabSpeedDial)view.findViewById(R.id.cms_fab_speed_dial); 
        list = (ListView) view.findViewById(R.id.list_manageCms); 
        searchView=(SearchView)view.findViewById(R.id.searchView); 
        requestQueue= Volley.newRequestQueue(getActivity()); 

        // Pass results to ListViewAdapter Class 
        manageCmsAdapter = new ManageCmsAdapter(getActivity(), R.layout.fragment_manage_cms_list_item, 
          manageCmsModelList); 

        // Binds the Adapter to the ListView 
        list.setAdapter(manageCmsAdapter); 
        list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); 
        list.setTextFilterEnabled(true); 
        setupSearchView(); 
        list.setOnTouchListener(new ListView.OnTouchListener() { 
         private long startClickTime; 
         @Override 
         public boolean onTouch(View v, MotionEvent event) { 
          int action = event.getAction(); 
          switch (action) { 
           case MotionEvent.ACTION_DOWN: 
            // Disallow ScrollView to intercept touch events. 
            v.getParent().requestDisallowInterceptTouchEvent(true); 
            events=1; 
            break; 

           case MotionEvent.ACTION_UP: 
            // Allow ScrollView to intercept touch events. 
            v.getParent().requestDisallowInterceptTouchEvent(false); 
            events=0; 
            break; 
           /*case MotionEvent.ACTION_MOVE: 
             long clickDuration = Calendar.getInstance().getTimeInMillis() - startClickTime; 
             if (clickDuration >= MIN_CLICK_DURATION) { 
              //Toast.makeText(getActivity(), "LONG PRESSED!",Toast.LENGTH_SHORT).show(); 
              events=1; 
             }*//* 
            break;*/ 

          } 

          // Handle ListView touch events. 
          v.onTouchEvent(event); 
          return true; 
         } 
        }); 
        list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
         @Override 
         public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
          int pos = adapterView.getPositionForView(view); 
          String cmsId=manageCmsModelList.get(pos).getCmsId(); 
          String cmsDescription=manageCmsModelList.get(pos).getCmsDescription(); 
          String cmsUrl=manageCmsModelList.get(pos).getCmsUrl(); 
          String cmsTitle=manageCmsModelList.get(pos).getCmsTitle(); 
          commonSharedPref.clearAll(); 
          commonSharedPref.editCMS(cmsTitle,cmsUrl, cmsDescription, cmsId); 
          Intent intent=new Intent(getActivity(),EditCms.class); 
          startActivity(intent); 

         } 
        }); 

        list.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() { 
         @Override 
         public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) { 

          if(list!=null){ 
           // Capture total checked items 
           int checkedCount = list.getCheckedItemCount(); 
           // Set the CAB title according to total checked items 
           /*((MainActivity) getActivity()).getSupportActionBar().hide();*/ 
           mode.setTitle(checkedCount + " Selected"); 
           manageCmsAdapter.toggleSelection(position); 
          } 

         } 

         @Override 
         public boolean onCreateActionMode(ActionMode actionMode, Menu menu) { 
          actionMode.getMenuInflater().inflate(R.menu.menu_cms_management, menu); 
          return true; 
         } 

         @Override 
         public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) { 

          return false; 
         } 


         @Override 
         public void onDestroyActionMode(ActionMode actionMode) { 
          manageCmsAdapter.removeSelection(); 
         } 
        }); 
        list.setOnScrollListener(new AbsListView.OnScrollListener() { 
         @Override 
         public void onScrollStateChanged(AbsListView absListView, int totalItemCount) { 

         } 

         @Override 
         public void onScroll(AbsListView absListView, int firstVisibleItem, int visibleItemCount, int totalItemCount) { 
          int test=list.getAdapter().getCount(); 
          // TODO Auto-generated method stub 
          if(test!=0 && !absListView.equals("")){ 
           if (list.getLastVisiblePosition() == list.getAdapter().getCount() -1 && 
             list.getChildAt(list.getChildCount() - 1).getBottom() <= list.getHeight()) 
           { 
            SparseBooleanArray selected = manageCmsAdapter 
              .getSelectedIds(); 
            if(selected.size() == 0 && test!=totcheckCount){ 
             getCMS(); 
            } 

           } 
          } 
         } 
        }); 
        fabSpeedDial.setMenuListener(new SimpleMenuListenerAdapter() { 
         @Override 
         public boolean onMenuItemSelected(MenuItem menuItem) { 
          switch (menuItem.getItemId()) { 
           case R.id.action_UnBlockAll: 
            toggleUnblockAll(); 
            return true; 
           case R.id.action_BlockAll: 
            toggleBlockAll(); 
            return true; 
           case R.id.action_DeleteAll: 
            toggleDeleteAll(); 
            return true; 
           case R.id.action_SelectAll: 
            toggleSelectAll(); 
            return true; 
           case R.id.action_DeSelectAll: 
            toggleDeSelectAll(); 
            return true; 
           default: 
            return false; 
          } 
         } 
        }); 

        return view; 
       } 

       private void setupSearchView() { 
        searchView.setIconifiedByDefault(false); 
        searchView.setOnQueryTextListener(this); 
        searchView.setSubmitButtonEnabled(true); 
        searchView.setQueryHint("Search Here"); 
       } 

       private void toggleDeSelectAll() { 
        int checkcounts=manageCmsModelList.size(); 
        manageCmsAdapter.removeSelection(); 
        for(int i=0;i<checkcounts;i++){ 
         list.setItemChecked(i, false); 
        } 
       } 

       private void toggleSelectAll() { 

        int checkcount=manageCmsModelList.size(); 
        manageCmsAdapter.removeSelection(); 
        for(int i=0;i<checkcount;i++){ 
         list.setItemChecked(i, true); 
        } 

       } 

       private void toggleDeleteAll() { 
        SparseBooleanArray selected = manageCmsAdapter 
          .getSelectedIds(); 
        if(selected.size()!=0){ 
         Url=ApiConstants.MULTI_DELETE; 
         manageDelete(); 
        }else{ 
         Toast.makeText(getActivity(), R.string.select_atleat_one,Toast.LENGTH_SHORT).show(); 
        } 

       } 


       private void toggleBlockAll() { 
        SparseBooleanArray selected = manageCmsAdapter 
          .getSelectedIds(); 
        if(selected.size()!=0){ 
         Url=ApiConstants.MULTI_BLOCK; 
         manageAll(); 
        }else{ 
         Toast.makeText(getActivity(), R.string.select_atleat_one,Toast.LENGTH_SHORT).show(); 
        } 

       } 

       private void toggleUnblockAll() { 
        SparseBooleanArray selected = manageCmsAdapter 
          .getSelectedIds(); 
        if(selected.size()!=0){ 
        Url=ApiConstants.MULTI_UNBLOCK; 
        manageAll(); 
        }else{ 
         Toast.makeText(getActivity(), R.string.select_atleat_one,Toast.LENGTH_SHORT).show(); 
        } 
       } 

       private void getCMS() { 
        pDialog = new ProgressDialog(getActivity()); 
        pDialog.setMessage("Loading Cms..."); 
        pDialog.setCancelable(false); 
        showpDialog(); 
        StringRequest stringRequest = new StringRequest(Request.Method.GET, ApiConstants.MANAGE_CMS+"?startLimit="+start, 
          new Response.Listener<String>() { 
           @Override 
           public void onResponse(String response) { 
            JSONArray user = null; 
            JSONObject jo = null; 
            try { 
             hidepDialog(); 
             JSONObject users = new JSONObject(response); 
             String status = users.getString("message"); 
             totcheckCount=Integer.valueOf(users.getString("totalRecord")); 
             if (status.equals("Success")) { 
              user = users.getJSONArray(ProjectConstants.JSON_ARRAY); 
              if (user.length() == 0) { 
              } else { 
               for (int i = 0; i < user.length(); i++) { 
                ManageCmsModel manageCmsModel=new ManageCmsModel(); 
                jo = user.getJSONObject(i); 
                start++; 
                manageCmsModel.setCmsId(jo.getString("cmsId")); 
                manageCmsModel.setCmsDescription(jo.getString("cmsDescription")); 
                manageCmsModel.setCmsTitle(jo.getString("cmsTitle")); 
                manageCmsModel.setCmsUrl(jo.getString("cmsUrl")); 
                manageCmsModel.setCmsStatus(jo.getString("cmsStatus")); 
                manageCmsModel.setSno(String.valueOf(start)); 
                manageCmsModelList.add(manageCmsModel); 
                arraylist.add(manageCmsModel); 
                //mAdapter.getSubscriberList().add(subscriber); 
               } 
               hidepDialog(); 
               manageCmsAdapter = new ManageCmsAdapter(getActivity(), R.layout.fragment_feed_back_list_item, 
                 arraylist); 
               list.setAdapter(manageCmsAdapter); 
               /*list.setAdapter(manageCmsAdapter); 
               manageCmsAdapter.notifyDataSetChanged();*/ 
              } 

             } else if(status.equals("Error")){ 
              String msg=users.getString("data"); 
              Toast.makeText(getActivity(),msg,Toast.LENGTH_LONG).show(); 
             }else if(status.equals("Warning")){ 
              String msg=users.getString("data"); 
              Toast.makeText(getActivity(),msg,Toast.LENGTH_LONG).show(); 
             }else if(status.equals("Server error")){ 
              toggleDeSelectAll(); 
              String msg=users.getString("data"); 
              Toast.makeText(getActivity(),msg,Toast.LENGTH_LONG).show(); 
             } 
             hidepDialog(); 
            } catch (Exception e) { 
             hidepDialog(); 
             e.printStackTrace(); 
            } 
           } 
          }, 
          new Response.ErrorListener() { 
           @Override 
           public void onErrorResponse(VolleyError error) { 
            hidepDialog(); 

           } 
          }) { 
         @Override 
         protected Map<String, String> getParams() { 
          Map<String, String> params = new HashMap<String, String>(); 
          String startLimit = String.valueOf(start); 
          params.put("startLimit", startLimit); 
          return params; 
         } 
        }; 

        RequestQueue requestQueue = Volley.newRequestQueue(getActivity()); 
        stringRequest.setShouldCache(false); 
        stringRequest.setRetryPolicy(new DefaultRetryPolicy(20 * 1000, 0, 
          DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
        requestQueue.add(stringRequest); 
       } 
       } 

     public class EditCms extends AppCompatActivity { 
      EditText edt_cmsTitle,edt_cmsUrl,edt_cmsDesc; 
      String cmsId,cmsTitle,cmsUrl,cmsDescription,organizerId; 
      // Progress dialog 
      Button btn_editCms; 
      ProgressDialog pDialog; 
      RequestQueue requestQueue; 
      CommonSharedPref commonSharedPref; 
      private ArrayList<HashMap<String,String>> userData; 
      @Override 
      protected void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.fragment_edit_cms); 
       commonSharedPref =new CommonSharedPref(getApplicationContext()); 
       DataBaseHandler dataBaseHandler=new DataBaseHandler(getApplicationContext()); 
       userData=dataBaseHandler.getUserDetail(); 
       organizerId=userData.get(0).get(ProjectConstants.KEY_ORGID); 

       getSupportActionBar().setTitle("Edit cms"); 
       getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

       edt_cmsTitle=(EditText)findViewById(R.id.edt_cmsTitle); 
       edt_cmsUrl=(EditText)findViewById(R.id.edt_cmsUrl); 
       edt_cmsDesc=(EditText)findViewById(R.id.edt_cmsDesc); 
       SharedPreferences prefs = this.getSharedPreferences("user", 
         Context.MODE_PRIVATE); 
       edt_cmsTitle.setText(prefs.getString("cmsTitle", "")); 
       edt_cmsUrl.setText(prefs.getString("cmsUrl","")); 
       edt_cmsDesc.setText(prefs.getString("cmsDescription","")); 
       cmsId=prefs.getString("cmsId",""); 
       btn_editCms=(Button)findViewById(R.id.btn_editCms); 
       btn_editCms.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         cmsTitle=edt_cmsTitle.getText().toString(); 
         cmsUrl=edt_cmsUrl.getText().toString(); 
         cmsDescription=edt_cmsDesc.getText().toString(); 
         if(cmsTitle.equals("")){ 
          Toast.makeText(getApplicationContext(), R.string.cms_title,Toast.LENGTH_SHORT).show(); 
         }else if(cmsUrl.equals("")){ 
          Toast.makeText(getApplicationContext(), R.string.cms_url,Toast.LENGTH_SHORT).show(); 
         }else if(!Patterns.WEB_URL.matcher(cmsUrl).matches()){ 
          Toast.makeText(getApplicationContext(), R.string.invalid_url,Toast.LENGTH_SHORT).show(); 
         }else if(cmsDescription.equals("")){ 
          Toast.makeText(getApplicationContext(), R.string.cms_desc,Toast.LENGTH_SHORT).show(); 
         }else if(cmsDescription.length()<50){ 
          Toast.makeText(getApplicationContext(), R.string.cms_min_char,Toast.LENGTH_SHORT).show(); 
         }else{ 
          editCMS(); 

      } 

     } } 

        } 
       }); 
      } 

      public void editCMS() { 
       pDialog = new ProgressDialog(this); 
       pDialog.setMessage("Updationg Cms..."); 
       pDialog.setCancelable(false); 
       showpDialog(); 
       StringRequest stringRequest = new StringRequest(Request.Method.POST, ApiConstants.EDIT_CMS+cmsId, 
         new Response.Listener<String>() { 
          @Override 
          public void onResponse(String response) { 
           JSONArray user = null; 
           JSONObject jo=null; 
           JSONArray error = null; 
           try{ 
            hidepDialog(); 
            JSONObject users = new JSONObject(response); 
            String status = users.getString("message"); 
            if(status.equals("Success")){ 
             String msg=users.getString("data"); 
             Toast.makeText(getApplicationContext(),msg,Toast.LENGTH_LONG).show(); 
            }else if(status.equals("Error")){ 
             String msg=users.getString("data"); 
             Toast.makeText(getApplicationContext(),msg,Toast.LENGTH_LONG).show(); 
            }else if(status.equals("warning")){ 
             String msg=users.getString("data"); 
             Toast.makeText(
      } 

     }getApplicationContext(),msg,Toast.LENGTH_LONG).show(); 
            }else if(status.equals("Server error")){ 
             String msg=users.getString("data"); 
             Toast.makeText(getApplicationContext(),msg,Toast.LENGTH_LONG).show(); 
            } 
           }catch (Exception e){ 
            hidepDialog(); 
           } 
          } 
         }, 
         new Response.ErrorListener() { 
          @Override 
          public void onErrorResponse(VolleyError error) { 
           hidepDialog(); 
           String errorMessage=error.getClass().getSimpleName(); 
           Toast.makeText(getApplicationContext(),errorMessage,Toast.LENGTH_LONG).show(); 
          } 
         }){ 
        @Override 
        protected Map<String,String> getParams(){ 
         Map<String,String> params = new HashMap<String, String>(); 
         params.put("cmsTitle",cmsTitle); 
         params.put("cmsUrl",cmsUrl); 
         params.put("cmsDescription",cmsDescription); 
         params.put("organizerId",organizerId); 
         return params; 
        } 
       }; 

      } 

      public void showpDialog() { 
       if (!pDialog.isShowing()) 
        pDialog.show(); 
      } 

      public void hidepDialog() { 
       if (pDialog.isShowing()) 
        pDialog.dismiss(); 
      } 

      @Override 
      public boolean onOptionsItemSelected(MenuItem item) { 
       switch (item.getItemId()) { 

        // Respond to the action bar's Up/Home button 
        case android.R.id.home: 
         commonSharedPref.clearAll(); 
         commonSharedPref.editCMS(cmsTitle,cmsUrl, cmsDescription, cmsId); 
         finish(); 
         return true; 
       } 
       return super.onOptionsItemSelected(item); 
      } 
      @Override 
      public void onBackPressed() { 

       super.onBackPressed(); 

      } 

     } 

내가 fragmen에 다시 가서 변경하는 방법과 조각 값을 재 로딩 후 현재 목록의 위치보다 값으로 시작합니다.

@Override 
    protected void onResume() { 
     super.onResume(); 
     manageCmsAdapter.notifyDataSetChanged(); 
    } 

+3

startActivity를 사용하는 대신 startActivityForResult 사용자와 fragment를 넣는 주 활동에서 onActivityResult 메서드를 재정의하고 조각보기에 수신기를 보내어 목록보기를 다시로드합니다. –

+0

startActivityForResult를 추가 할 위치. –

+0

새 활동이 시작되는 목록 항목 클릭시. –

답변

0

재정의 onResume 어댑터 당신의 조각 및 통지를 다른 활동에 갈 때 조각의 onPause 호출하고 onResume()를 돌아 오는 때 데이터 변경에 대한 통지 할 수 call.So합니다

관련 문제