-5

Как получить выбранную позицию в элементе checkId.Как установить флажок выбранной позиции

У меня есть два предмета Veg и non-veg. Я хочу получить результат только для предметов вегетарианства. Я показываю экран в пунктах veg. Но он не работает для элементов, отмеченных списком veg.

Response

|1|Amaretto cookies|True 
  1. является Itemid

  2. пищевой продукт

  3. True/False.

на основе Правда или Ложь мне нужно проверить флажки и получить проверяемого изделия

Вег элементы:

|21|1|Amaretto cookies|True|2|Amish White Bread|True|6|Caesar Salad|True|10|Guacamole|True|13|Macaroni and Cheese|True|16|Pancakes|True|17|Pasta|True|18|Ribollita|True|20|Pizza|True|21|Seven Layer Taco Dip|True|22|Shrimp Bisque|True|23|Spicy Bean Salsa|True|24|Sopapilla Cheesecake|True|25|Sopapilla Cheesecake Pie|True|26|Vegetarian Tortilla Stew|True|561|food|True|563|asdf|True|574|veg|True|579|a|True|593|hjg|True|619|hhy|True| 

Non- Вег элементы:

|12|3|Barbeque|False|4|Buffalo Chicken Wings|False|5|Burgers|False|7|Classic Lasagna|False|8|Chicken Chow Mein|False|9|Fried Chicken|False|11|Japanese sushi|False|12|Mezze|False|14|Mutton Pepper Gravy|False|15|Paella Valenciana|False|19|Phad Thai Recipe|False|578|Pizza|False| 

Url:

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); 
    System.out.println(result); 
    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>(); 
     stritem = new ArrayList<String>(); 
     vegitems = new ArrayList<String>(); 
     nonvegitems = 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]); 

       str3.add(mystring[1]); 
      } 

     } 

     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)); 
     selection = (TextView) findViewById(R.id.selection); 

     getListView().setTextFilterEnabled(true); 

     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)+","); 
        else 
         fals.append(itemId.get(i)+","); 
       } 

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


        NetworkInfo info = cm.getActiveNetworkInfo(); 
        if (info != null && info.isAvailable()) { 
              String user_url="http://mobileapps.iwedplanner.com/mobileapps/iwedplanner/mobile/version21/minsertmealchoiceNew.aspx?uname="+username+"&occasion="+occasionval+ 
          "&choice="+tru+fals+"&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&"))) 
        { 


@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); 


      else 
      check.setChecked(false); 


       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); 

} 
} 

оснастки:

Это то, что он должен выглядеть like.False детали проверены в оснастке

enter image description here

Выше показан полный код моего проекта.

Это мои требования:

Это все о планировщик событий для производства продуктов питания. Приглашенные гости могут выбрать и сохранить интересующие товары, такие как pizza, Caesar salad, Ameretocokies и т. Д. Из списка элементов и почты для приглашающего, чтобы приглашающий мог просмотреть сохраненные элементы и организовать выбранные элементы.

+0

вы должны проверили список право пункты? – SathishKumar

+0

Что вам нужно, список элементов, который проверен ??? – InnocentKiller

+0

Помогло ли мое сообщение? – Raghunandan

ответ

3

Я выбрал решение от решения Ромена Гая @

https://groups.google.com/forum/?fromgroups#!topic/android-developers/No0LrgJ6q2M

Я использовал ViewHolder шаблон для плавной прокрутки и производительности. Я использовал SparseBooleanArray, чтобы получить отмеченные предметы.

Предполагаете, вы хотите, чтобы элементы, соответствующие флажкам, отмечены.

Также проверьте, чтобы это понять ListView вид на повторные циклы

How ListView's recycling mechanism works

public class dsds extends Activity 
{ 

    ListView lv; 
    String result = null; 
    StringTokenizer2 token = null,token2=null;; 

    ArrayList<String> value,value2 = null; 
    ArrayList<String> str = null; 
    ArrayList<String> str2 = null; 
    ArrayList<String> newstatus=null; 
    Hashtable<Integer, String> checkstatus=null; 
    ArrayList<String>stateId=null; 
    StringBuffer tru,fals; 
    private SparseBooleanArray mCheckStates; 
    String z; 
    ArrayList<Holder> ha = new ArrayList<Holder>(); 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.text); 
     str2 = new ArrayList<String>();   
     stateId = new ArrayList<String>(); 
     newstatus=new ArrayList<String>(); 
     lv = (ListView) findViewById(R.id.listView1); 
      Button b= (Button) findViewById(R.id.button1); 
      new TheTask().execute(); 
      b.setOnClickListener(new OnClickListener() 
      { 

       @Override 
       public void onClick(View v) { 
        StringBuilder result = new StringBuilder(); 
        for(int i=0;i<str2.size();i++) 
        { 
         if(mCheckStates.get(i)==true) 
         { 
          result.append(str2.get(i)); 
          result.append("\n"); 
         } 

       } 
       Toast.makeText(dsds.this, result, 1000).show(); 
       } 

      }); 
    } 
    class TheTask extends AsyncTask<Void,Void,Void> 
    { 

     @Override 
     protected Void doInBackground(Void... params) { 
      // TODO Auto-generated method stub 
      HttpClient httpclient = new DefaultHttpClient(); 
      httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); 
      HttpGet request = new HttpGet("http://mobileapps.iwedplanner.com/mobileapps/iwedplanner/mobile/version21/mmealitems.aspx?uname=abcdefg&occasion=Engagement"); 

      try 
      { 
      HttpResponse response = httpclient.execute(request); 
      HttpEntity resEntity = response.getEntity(); 
      String _response=EntityUtils.toString(resEntity); 

       if (_response != null) 
       { 
        //alertbox("",result); 
        String[] mystring = _response.split("<br>"); // splt by break 
        token = new StringTokenizer2(mystring[0], "|", false);// split by | 
        token2 = new StringTokenizer2(mystring[1], "|", false); 
       } 
      /////// for veg 
        value = new ArrayList<String>(); 
        while (token.hasMoreTokens()) 
        { 
         value.add(token.nextToken()); 

        } 


        for(int i=1;i<value.size()-1;i=i+3) 
        { 

        // Log.i("....Veg ids.......",""+value.get(i)); 
         stateId.add(value.get(i)); 
        } 
        for(int i=2;i<value.size()-1;i=i+3) 
        { 
         str2.add(value.get(i)); 
        // Log.i("....Veg ids.......",""+value.get(i)); 
        } 
        for(int i=3;i<=value.size()-1;i=i+3) 
        { 
         newstatus.add(value.get(i)); 
       //  Log.i("....Veg ids.......",""+value.get(i)); 
        } 
       // add all to list of Holder 

        for(int h=0;h<str2.size();h++) 
        { 
        Holder holder = new Holder(); 
        holder.setTitle(str2.get(h)); 
        holder.setId(stateId.get(h)); 
        if(newstatus.get(h).equals("False")) 
        { 
         holder.setCheck(true); 
        } 
        else 
        { 
         holder.setCheck(false); 
        } 
        ha.add(holder); 
        } 


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

     @Override 
     protected void onPostExecute(Void result) { 
      // TODO Auto-generated method stub 
      super.onPostExecute(result); 
      lv.setAdapter(new IconicAdapter(dsds.this)); 
     } 

    } 
    @SuppressWarnings("rawtypes") 
    class IconicAdapter extends ArrayAdapter implements CompoundButton.OnCheckedChangeListener 
    { 
     Activity context; 
     LayoutInflater mInflater; 
     @SuppressWarnings("unchecked") 
     IconicAdapter(Activity context)      
     { 
      super(context, R.layout.list_item, str2); 
      mCheckStates = new SparseBooleanArray(str2.size()); 
      mInflater = LayoutInflater.from(context); 
     } 

    @Override 

    public View getView(int position, View convertView, ViewGroup parent) 
    { 
     ViewHolder holder; 
     if(convertView==null) 
     { 
      convertView=mInflater.inflate(R.layout.list_item,parent,false); 
      holder = new ViewHolder(); 
      holder.tv1 = (TextView) convertView.findViewById(R.id.textView1); 
      holder.tv2 = (TextView) convertView.findViewById(R.id.textView2); 
      holder.cb = (CheckBox) convertView.findViewById(R.id.checkBox1); 
      convertView.setTag(holder); 
     } 
     else 
     { 
      holder = (ViewHolder) convertView.getTag(); 
     } 
      Holder hol = ha.get(position); 
      holder.tv1.setText(hol.getId().toString()); 
      holder.tv2.setText(hol.getTitle().toString()); 
      if(hol.isCheck()==true) 
      { 
      holder.cb.setChecked(mCheckStates.get(position, true)); 
      holder.cb.setTag(position); 

      } 
      else 
      { 
      holder.cb.setChecked(mCheckStates.get(position, false)); 
      holder.cb.setTag(position); 

      } 
      holder.cb.setOnCheckedChangeListener(this); 
     return convertView; 

    } 

    public boolean isChecked(int position) { 
     return mCheckStates.get(position, false); 
    } 

    public void setChecked(int position, boolean isChecked) { 
     mCheckStates.put(position, isChecked); 

    } 

    public void toggle(int position) { 
     setChecked(position, !isChecked(position)); 

    } 
    @Override 
    public void onCheckedChanged(CompoundButton buttonView, 
      boolean isChecked) { 

     mCheckStates.put((Integer) buttonView.getTag(), isChecked);  
    } 

} 
    static class ViewHolder 
    { 
     TextView tv1,tv2; 
     CheckBox cb; 
    } 
} 

класс Держатель

public class Holder { 

    String title; 
    String id; 
    public String getId() { 
     return id; 
    } 
    public void setId(String id) { 
     this.id = id; 
    } 
    boolean check; 
    public String getTitle() { 
     return title; 
    } 
    public void setTitle(String title) { 
     this.title = title; 
    } 
    public boolean isCheck() { 
     return check; 
    } 
    public void setCheck(boolean check) { 
     this.check = check; 
    } 

} 

text.xml

<?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" > 

     <Button 
      android:id="@+id/button1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_centerHorizontal="true" 
      android:text="Button" /> 

     <ListView 
      android:id="@+id/listView1" 
      android:layout_above="@id/button1" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:layout_centerHorizontal="true" > 

     </ListView> 

    </RelativeLayout> 

list_tie m.xml

<?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" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginLeft="33dp" 
     android:layout_marginTop="40dp" 
     android:text="TextView" /> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/textView1" 
     android:layout_centerHorizontal="true" 
     android:text="TextView" /> 

    <CheckBox 
     android:id="@+id/checkBox1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/textView2" 
     android:layout_alignBottom="@+id/textView2" 
     android:layout_alignParentRight="true" 
     android:text="CheckBox" /> 

</RelativeLayout> 

Привязать

Теперь 1 и 2 проверяются и при нажатии на кнопку в нижней части вы видите выбранный текст. Я проверил 1 и 2 вручную. Однако это зависит от ответа, т.е. True или False. Сейчас все предметы veg верны.

Примечание: В списке отображаются только Вег элементы

enter image description here

0

Если вы используете list-view и хотите проверить элемент списка, воспользуйтесь нижеприведенным кодом.

int len = mListView.getCount(); 
SparseBooleanArray checked = mListView.getCheckedItemPositions(); 
for (int i = 0; i < len; i++) 
if (checked.get(i)){ 
..... // Your code whatever you want to do with selected item.. 
} 
else{ 
.... 
} 
+0

Надеюсь, это поможет вам, и все же, если вы столкнулись с какой-либо ошибкой, дайте мне знать. – InnocentKiller

Смежные вопросы