8

के बिना एंड्रॉइड में मल्टी चयन स्पिनर मैं इस लिंक https://www.gorecess.com/ पहले स्पिनर के समान चाहता हूं। चेकबॉक्स के साथ एंड्रॉइड में बहु चयन स्पिनर। स्पिनर ड्रॉपडाउन में कैसे। किसी को भी इस सवाल का जवाब पता है ...अलर्टडिअलॉग

+0

आप कस्टम लेआउट का उपयोग कर सकते हैं। – Aniruddha

+0

आपको कोई लिंक पता है बस मुझे – user3793597

उत्तर

20

मैं कुछ लिंक आप देखने की है कि प्रकार

इस का पालन करने का उल्लेख कर सकते है लिंक

Multi-Select Drop Down List in Android

Spinner with multiple selection in Android

How to Customize Spinner in Android

यह आपकी मदद कर सकते हैं

+0

फंस गया है, क्या कोई भी मदद कर सकता है http://stackoverflow.com/questions/29446088/how-to-get-spinner-values-in-textview/29487383?noredirect=1#comment47175570_29487383 –

+3

https : //github.com/pratikbutani/MultiSelectSpinner –

6

MultiSelectionSpinner

  <com.extra.MultiSelectionSpinner 
       android:id="@+id/input1" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_margin="2dp" /> 

     MultiSelectionSpinner spinner=(MultiSelectionSpinner)findViewById(R.id.input1); 

     List<String> list = new ArrayList<String>(); 
      list.add("List1"); 
      list.add("List2"); 
      spinner.setItems(list); 

अधिक जानकारी के लिए क्लिक करें here

1

बहु चयन स्पिनर:

1-, अपने खुद के एक्सएमएल में एक स्पिनर बनाने इस

की तरह
<Spinner 
    android:id="@+id/mySpinner" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_marginTop="1dp"/> 

इस तरह स्पिनर के लिए एक कस्टम dapter 2-बनाएँ:

public class AdapterTagSpinnerItem extends ArrayAdapter<TagListSimpleSearch> 
{ 
    private LayoutInflater mInflater; 
    private List<TagListSimpleSearch> listState; 
    public Spinner mySpinner = null; 

    public AdapterTagSpinnerItem(Context context, int resource, List<TagListSimpleSearch> objects, Spinner mySpinner) 
    { 
     super(context, resource, objects); 
     this.listState = objects; 
     this.mySpinner = mySpinner; 
     mInflater = LayoutInflater.from(context); 
    } 

    @Override 
    public View getDropDownView(int position, View convertView, ViewGroup parent) 
    { 
     return getCustomView(position, convertView, parent); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) 
    { 
     return getCustomView(position, convertView, parent); 
    } 

    public View getCustomView(final int position, View convertView, ViewGroup parent) 
    { 
     String text = ""; 
     final ViewHolder holder; 
     if (convertView == null) 
     { 
      holder = new ViewHolder(); 
      mInflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      convertView = mInflater.inflate(R.layout.spinner_item, null, false); 
      holder.mTextView = convertView.findViewById(R.id.tvSpinnerItem); 
      convertView.setTag(holder); 
     } 
     else 
     { 
      holder = (ViewHolder) convertView.getTag(); 
     } 
     /** 
     * check position , if position is zero we put space on top of list of spinner 
     */ 
     if ((position == 0)) 
      text = oneSpace; 
     /** 
     * check position , if position is one we put cross mark before text to show that position used to be for clear all selected items on spinner 
     */ 
     else if ((position == 1)) 
      text = " " + String.valueOf((char) crossMarkAroundBox) + " " + listState.get(position).getTagText(); 
     /** 
     * check position , if position is two we put check mark before text to show that position used to be for select all items on spinner 
     */   
     else if ((position == 2)) 
      text = " " + String.valueOf((char) tikMarkAroundBox) + " " + listState.get(position).getTagText(); 
     /** 
     * check position , if position is bigger than two we have to check that position is selected before or not and put check mark or dash before text 
     */   
     else 
     { 
      if (listState.get(position).isSelected()) 
      { 
       text = " " + String.valueOf((char) tikMark) + " " + listState.get(position).getTagText(); 
      } 
      else 
      { 
       text = " " + String.valueOf(dash) + " " + listState.get(position).getTagText(); 
      } 
     } 
     holder.mTextView.setText(text); 
     holder.mTextView.setTag(position); 
     holder.mTextView.setOnClickListener(new View.OnClickListener() 
     { 
      @Override 
      public void onClick(View v) 
      { 
       /** 
       * if you want open spinner after click on text for first time we have to open spinner programmatically 
       */ 
       mySpinner.performClick(); 
       int getPosition = (Integer) v.getTag(); 
       listState.get(getPosition).setSelected(!listState.get(getPosition).isSelected()); 
       notifyDataSetChanged(); 

       /** 
       * if clicked position is one 
       * that means you want clear all select item in list 
       */    
       if (getPosition == 1) 
       { 
        clearList(); 
       } 
       /** 
       * if clicked position is two 
       * that means you want select all item in list 
       */ 
       else if (getPosition == 2) 
       { 
        fillList(); 
       } 
      } 
     }); 
     return convertView; 
    } 


    /** 
    * clear all items in list 
    */ 
    public void clearList() 
    { 
     for (TagListSimpleSearch items : listState) 
     { 
      items.setSelected(false); 
     } 
     notifyDataSetChanged(); 
    } 

    /** 
    * select all items in list 
    */ 
    public void fillList() 
    { 
     for (TagListSimpleSearch items : listState) 
     { 
      items.setSelected(true); 
     } 
     notifyDataSetChanged(); 
    } 

    /** 
    * view holder 
    */ 
    private class ViewHolder 
    { 
     private TextView mTextView; 
    } 
} 

3- अब आप एडाप्टर

public class TagListSimpleSearch { 

    private String TagId; 
    private String TagText; 
    private boolean selected; 

    public String getTagId() { 
     return TagId; 
    } 

    public void setTagId(String TagId) { 
     this.TagId = TagId; 
    } 

    public String getTagText() { 
     return TagText; 
    } 

    public void setTagText(String tagText) { 
     TagText = tagText; 
    } 

    public boolean isSelected() 
    { 
     return selected; 
    } 

    public void setSelected(boolean selected) 
    { 
     this.selected = selected; 
    } 
} 

4-भरने के लिए वस्तु बनाने के लिए है आपकी गतिविधि में स्पिनर एडाप्टर

public static String oneSpace =" "; 
public static int tikMark =0X2714; 
public static int crossMark =0X2715; 
public static int tikMarkAroundBox =0X2611; 
public static int crossMarkAroundBox =0X274E; 
public static String dash ="-"; 
private Spinner mySpinner; 

mySpinner= (Spinner) findViewById(R.id.mySpinner); 
List<TagListSimpleSearch> tagsNames = new ArrayList<>(); 
TagListSimpleSearch tagSpecific=new TagListSimpleSearch(); 
tagSpecific.setTagId("0"); 
tagSpecific.setTagText(oneSpace); 
tagsNames.add(tagSpecific); 

tagSpecific=new TagListSimpleSearch(); 
tagSpecific.setTagId("1"); 
tagSpecific.setTagText("select All Items"); 
tagsNames.add(tagSpecific); 

tagSpecific=new TagListSimpleSearch(); 
tagSpecific.setTagId("2"); 
tagSpecific.setTagText("remove All Items"); 
tagsNames.add(tagSpecific); 

tagSpecific=new TagListSimpleSearch(); 
tagSpecific.setTagId("0"); 
tagSpecific.setTagText("Item 0"); 
tagsNames.add(tagSpecific); 

tagSpecific=new TagListSimpleSearch(); 
tagSpecific.setTagId("1"); 
tagSpecific.setTagText("Item 1"); 
tagsNames.add(tagSpecific); 

tagSpecific=new TagListSimpleSearch(); 
tagSpecific.setTagId("2"); 
tagSpecific.setTagText("Item 2"); 
tagsNames.add(tagSpecific); 

tagSpecific=new TagListSimpleSearch(); 
tagSpecific.setTagId("3"); 
tagSpecific.setTagText("Item 3"); 
tagsNames.add(tagSpecific); 

final AdapterTagSpinnerItem adapterTagSpinnerItem = new AdapterTagSpinnerItem(this, 0, tagsNames,mySpinner); 
mySpinner.setAdapter(adapterTagSpinnerItem); 
+0

आपके उत्तर के लिए धन्यवाद, मुझे विश्वास है कि यह इस पोस्ट पर सबसे अच्छा जवाब है, हालांकि अंडररेड। अंततः एक उत्तर जो लाइब्रेरी पर आधारित नहीं है या आपको किसी अन्य ब्लॉग पोस्ट पर नहीं लाता है। –

संबंधित मुद्दे