2013-12-18 20 views
-1

我正在使用ListActivity.I中的複選框不知道如何更新服務器中的複選框。如何更新複選框項目位置

現在我想出了檢查項目的結果是未選中的,保存意味着它將保存(或更新)服務器。但在未選中項目檢查意味着不保存(或不更新)的服務器。

Rsvp_EngagementMeals.java:

public class Rsvp_EngagementMeals extends ListActivity 
{ 
    @Override 

      checkstatus=new Hashtable<Integer,String>(); 
      status=new ArrayList<String>(); 
       veg =Rsvp_Meals.veg; 

      String user_url="http://mobileapps.iwedplanner.com/mobileapps/iwedplanner/mobile/version21/mmealitems.aspx?uname="+LoginForm.str1+"&occasion="+occasionval;  

     httpclass obj = new httpclass(); 
     result = obj.server_conn(user_url); 

     if (result != null) 
     {   
      token = new StringTokenizer2(result, ""); 
     } 


      value = new ArrayList<String>(); 

      while (token.hasMoreTokens()) 
      { 
       value.add(token.nextToken()); 
      } 

      value.add(Integer.toString(value.size())); 

      Integer k=null; 
      table=new Hashtable<Integer,ArrayList<String>>(); 
      itemId = new ArrayList<String>(); 
      str2 = new ArrayList<String>(); 
      str3 = new ArrayList<String>(); 
      stritem = new ArrayList<String>(); 
      vegitems = new ArrayList<String>(); 

      int id=0,c=0,n=value.size(); 

      for(int j=0; j<n; j++) 
      {    
       z = value.get(j); 

      String[] mystring = z.split("<br>"); 

       int arraysize = mystring.length; 

       for(int a=0; a<arraysize-1;a++) 
       { 
       str2.add(mystring[0]); 
       } 

      }    

      for(int g=0; g<str2.size();g++) 
      {    
       String name = str2.get(g); 

       token2 = new StringTokenizer2(name, "|", false); 

       while (token2.hasMoreTokens()) 
       { 
       vegitems.add(token2.nextToken()); 
       } 
          } 

      for(int x=1;x<vegitems.size();x++) 
      { 

       itemId.add(vegitems.get(x)); 
       x=x+1; 
       stritem.add(vegitems.get(x)); 
       x=x+1; 
       status.add(vegitems.get(x)); 

      } 

       setListAdapter(new IconicAdapter(this)); 

      save.setOnClickListener(new OnClickListener() 
      { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        tru = new StringBuffer(); 
        fals = new StringBuffer(); 

        for (int i = 0; i<status.size();i++) 
        { 
         if (status.get(i).equals("True")) 

          tru.append(itemId.get(i)+","); 

        } 

        boolean netvalue = false; 
        ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 


         NetworkInfo info = cm.getActiveNetworkInfo(); 
         if (info != null && info.isAvailable()) { 
             netvalue = true; 

         String user_url="http://mobileapps.iwedplanner.com/mobileapps/iwedplanner/mobile/version21/minsertmealchoiceNew.aspx?uname=abcdefg&occasion=Engagement 
           "&choice="+tru+"&ownchoice=&category="; 

         httpclass obj = new httpclass(); 
         result = obj.server_conn(user_url); 

         StringTokenizer st = new StringTokenizer(result, "|"); 
         result = st.nextToken(); 

         if ((result.equals("Engagement 1&")) || (result.equals("Wedding 1&")) || (result.equals("Reception 1&"))) 
         { 
          // alertbox("Success", "saved successfully"); 

          Dialog locationError = new AlertDialog.Builder(Rsvp_EngagementMeals.this) 
            .setIcon(0) 
            .setMessage("Meals has been saved sucessfully") 
            .setTitle("Success") 
            .setPositiveButton(R.string.yes, 
              new DialogInterface.OnClickListener() { 
               @Override 
               public void onClick( 
                 DialogInterface dialog, 
                 int id) { 

                Intent ma = new Intent(
                  Rsvp_EngagementMeals.this, Rsvp_Meals.class); 
                startActivity(ma); 
                finish(); 

               } 
              }).create(); 
          locationError.show(); 

         } else 
          alertbox("", result); 

        } else { 
         alertbox("Message", "No Internet Connection!"); 
        } 

       } 

      }); 


      }// End of On create method 



    @Override 
    protected void onListItemClick(ListView parent, View v, int position,long id) 
    { 
     super.onListItemClick(parent, v, position, id); 

     } 
public void onClick(View v) 
{ 
    System.out.println("On View Click"); 
} 

    @SuppressWarnings("rawtypes") 
    class IconicAdapter extends ArrayAdapter 
    { 
     Activity context; 

     @SuppressWarnings("unchecked") 
     IconicAdapter(Activity context)      
     { 
      super(context, R.layout.rsvp_mealsse, stritem); 

      this.context = context; 
     } 

    @Override 

    public View getView(int position, View convertView, ViewGroup parent) 
    { 
      LayoutInflater inflater = context.getLayoutInflater(); 
      View row = inflater.inflate(R.layout.rsvp_mealsse,null);//viewappointlist, null); 

      TextView index = (TextView) row.findViewById(R.id.index); 
      index.setText(String.valueOf(position+1)+"."); 


      TextView label = (TextView) row.findViewById(R.id.title); 
      label.setText(stritem.get(position)); 


      CheckBox check=(CheckBox)row.findViewById(R.id.check); 

      check.setId(Integer.parseInt(itemId.get(position))); 


      if(status.get(position).equals("True")) 
       check.setChecked(true); 
       ; 

        check.setOnCheckedChangeListener(new OnCheckedChangeListener() 
        { 

         @Override 
         public void onCheckedChanged(CompoundButton buttonView, 
           boolean isChecked) { 
          // TODO Auto-generated method stub 
          int ind=itemId.indexOf(String.valueOf(buttonView.getId())); 
          status.set(ind, String.valueOf(isChecked)); 

         } 

        }); 

      return (row); 
        } 
} 

這是我的全部code.How改變檢查box.I狀態希望得到的,當我更新複選框其保存在服務器後,我查看更新的項目列表查看我的複選框。

+1

checkbox.setChecked(布爾值)設置您的適當值。 –

+0

檢查[此鏈接](http://androidfreakers.blogspot.in/2011/10/custom-listview-with-checkbox.html)得到更好這個想法。 – AndyN

+0

請參閱[this](http://sunil-android.blogspot.in/2013/04/android-listview-checkbox-example.html)。 – AndyN

回答

3

,我可以點唯一的缺陷是虛假的拼寫你的if語句:

更改此代碼:

if(status.get(position).equals("False")) 

要將此代碼:

if(status.get(position).equals("false")) 

希望這個作品!

+0

我的webservice結果是「False」,「True」。 – Ramani

+0

上述更改是否正常工作,順便提一下String.valueOf(isChecked)會給你一個字符串爲「false」; – AabidMulani

相關問題