2013-07-16 27 views
0

我需要顯示數據在分隔列表視圖與複選框。在這一點上,我檢查了一些意見,但是當我滾動時,檢查狀態變爲未檢查。我正在使用下面的類來顯示我的列表視圖。複選框狀態改變,當我滾動在分開的列表視圖

public class SearchAdapter extends ArrayAdapter<Map<String,?>>{ 
     private LayoutInflater inflater; 
     private int resId=0; 
     private List<Map<String,?>> listitem; 
     public SearchAdapter(Context context, int resId, List<Map<String,?>> dataList){ 
      super(context, 0, dataList); 
      this.resId = resId; 
      inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      this.listitem = dataList; 
     } 
     @Override 
     public View getView(final int position, View convertView, ViewGroup parent) { 
      View view; 
     TextView code,date; CheckBox checkbox; 
     view = inflater.inflate(resId, parent, false); 
     code = (TextView)view.findViewById(R.id.code); 
     date= (TextView)view.findViewById(R.id.date); 
     checkbox=(CheckBox)view.findViewById(R.id.check); 
     Map<String,?> item = listitem.get(position); 
     final String[] values=(String[]) item.get("values"); 
     checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){ 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       Integer pos = (Integer)buttonView.getTag();  
      if(isChecked) 
      { 
       Log.e("checked","checked"+position); 
       } else{ 
        Log.e("checked","unchecked"); 
        } 
        } 
        }); 
      code.setText(values[32]); 
      date.setText(values[31]); 

       return view; 
     }  
    } 

我的屏幕視圖 enter image description here

所以,請指導我,如何解決這個問題

+0

是解決你使用cutom listview?如果是,那麼請張貼代碼 – Cris

+0

這裏是一個例子http:// stackoverflow。 COM /問題/ 16685366 /定製 - 列表視圖 - 使用 - arrayadapter級功能於機器人/ 16686623#16686623。來自我選擇的地方https://groups.google.com/forum/#!topic/android-developers/No0LrgJ6q2M – Raghunandan

+0

@cris SearchAdapter ex = new SearchAdapter(getActivity(),R.layout.searchlist_item,lists [i]) ; \t \t \t sAdapter.addSection(cust.getName(),ex); – koti

回答

3

我同樣的問題,但我通過這段代碼

public class CustomizeListView extends ListActivity { 

    LayoutInflater inflater; 
    static int index = 0; 

    // AutoCompleteTextView autoCompleteTextView; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_order); 
     inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_spinner_item, arrayList_Category); 
     dataAdapter 
       .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

     final CustomAdapter adapter = new CustomAdapter(this, 
       R.layout.activity_orderitem, arrayListItems); 
     setListAdapter(adapter); 
    } 

    private class CustomAdapter extends ArrayAdapter<HashMap<String, Object>> 
      implements OnItemSelectedListener { 
     boolean[] checkBoxState; 
     ViewHolder viewHolder; 

     public CustomAdapter(Context context, int textViewResourceId, 
       ArrayList<HashMap<String, Object>> arrayListItems) { 
      // let android do the initializing :) 
      super(context, textViewResourceId, arrayListItems); 
      checkBoxState = new boolean[arrayListItems.size()]; 
     } 

     // class for caching the views in a row 
     private class ViewHolder { 
      CheckBox checkBox; 
     } 

     @Override 
     public View getView(final int position, View convertView, 
       ViewGroup parent) { 
      Log.d("getView", "getView"); 
      if (convertView == null) { 
       convertView = inflater.inflate(R.layout.activity_orderitem, 
         null); 
       viewHolder = new ViewHolder(); 
       // cache the views 
       convertView.setTag(viewHolder); 
      } else 
       viewHolder = (ViewHolder) convertView.getTag(); 

      viewHolder.checkBox.setChecked(checkBoxState[position]); 

      viewHolder.checkBox.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View v) { 
        if (((CheckBox) v).isChecked()) { 
         checkBoxState[position] = true; 
        } else { 
         checkBoxState[position] = false; 
        } 
       } 
      }); 

      return convertView; 
     } 
    } 
} 
+0

解決我的問題,謝謝@Samadhan Medge – tamtoum1987

相關問題