मैं Android में सरल फिल्टर लिख रहा हूँ और चेक बॉक्स के साथ ExpandableListAdapter
उपयोग करना चाहते हैं।ExpandableListView और चेक बॉक्स
मैं सूची बनाने या चेकबॉक्स जाँच के साथ कोई समस्या नहीं है। लेकिन मैं वास्तव में नहीं जानता कि विकल्पों को कैसे याद रखें। समूह को बंद करने और फिर से खोलने के बाद या जब मैं अलग-अलग समूह खोलने का प्रयास करता हूं चेकबॉक्स बदलते हैं।
मुझे लगता है कि के बारे में नेट पर पढ़ने की कोशिश की लेकिन मैं कैसे मेरी समस्या हल करने के लिए लगता है didn `t।
यहाँ मेरी कोड है:
public class TasksFilterDialog extends Dialog{
private static final String TAG = "Filter Dialog";
private static final String ChildID = "ChildID";
private static final String GroupID = "GroupID";
private boolean[] statusCheck;
ExpandableListView list;
SimpleExpandableListAdapter listAdapter;
public TasksFilterDialog(Context context) {
super(context);
statusCheck = new boolean[Tasks.Status.values().length];
for(int i=0; i<statusCheck.length; i++)
statusCheck[i]=true;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.d(TAG, "Creating dialog");
this.setContentView(R.layout.tasks_filter);
list = (ExpandableListView)findViewById(R.id.filter_list);
setListAdapter(); // Setting Adapter Values to use on list
list.setAdapter(listAdapter); // Setting creating adapter to list
setOnChildClickListeners();
Log.d(TAG, "Creating dialog successfull");
}
private void setListAdapter() {
Log.d(TAG, "Setting list adapter");
listAdapter = new SimpleExpandableListAdapter(this.getContext(),
getGroups(),
R.layout.tasks_filter_groups_layout,
new String[] {GroupID},
new int[] {R.id.filter_group_text},
getChilds(),
R.layout.tasks_filter_simple_element,
new String[] {ChildID},
new int[] {R.id.filter_simple_element_text});
Log.d(TAG, "Setting list adapter successfull");
}
private List<HashMap<String, String>> getGroups() {
Log.d(TAG, "Adding groups values");
List<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
HashMap<String, String> statusMap = new HashMap<String, String>();
statusMap.put(GroupID, "Status");
list.add(statusMap);
HashMap<String, String> usersMap = new HashMap<String, String>();
usersMap.put(GroupID, "Users");
list.add(usersMap);
Log.d(TAG, "Adding groups values successfull");
return list;
}
private List<List<HashMap<String, String>>> getChilds() {
Log.d(TAG, "Adding childs values");
List<List<HashMap<String, String>>> list = new ArrayList<List<HashMap<String, String>>>();
List<HashMap<String, String>> secList = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map;
Tasks.Status status[] = Tasks.Status.values();
for(int i=0; i<status.length; i++) {
Log.d(TAG, "Adding child" + status[i].toString());
map = new HashMap<String, String>();
map.put(ChildID, status[i].toString());
secList.add(map);
}
list.add(secList);
list.add(secList);
Log.d(TAG, "Adding childs values succesfull");
return list;
}
private void setOnChildClickListeners() {
list.setOnChildClickListener(new OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView list, View v,
int group, int id, long arg4) {
CheckBox cb = (CheckBox) v.findViewById(R.id.filter_simple_element_check);
cb.toggle();
switch(group){
case 0:
if(statusCheck[id])
statusCheck[id]=false;
else
statusCheck[id]=true;
break;
case 1:
//TODO After getting Tasks function
}
return false;
}
});
}
}
इस लाइन के लिए क्या उद्देश्य: Tasks.Status स्थिति [] = Tasks.Status.values (); मुझे समाधान दे कृपया –
मैं अपने expandablelistview में चेक बॉक्स के साथ एक समान समस्या आ रही है। मैंने मूल्यों को बचाने के लिए एक तरीका निकाला है, लेकिन चेकबॉक्स के साथ जटिलताओं ने मुझे अपनी परियोजना में विस्तार योग्य सूचीदृश्य से आगे बढ़ने से रोक दिया है। कृपया कोड पोस्ट करें या संपर्क में रहने का जवाब दें, क्योंकि मुझे यह देखने में बहुत दिलचस्पी है कि आपने समाधान के साथ कैसे संपर्क किया। – AlleyOOP