проблема решена, теперь полностью проверьте мой код
ListViewCheckboxesActivity.java
package com.example.listview1;
public class ListViewCheckboxesActivity extends Activity
{
MyCustomAdapter dataAdapter = null;
FirebaseDatabase database;
DatabaseReference ref;
States states ;
States _states ;
ArrayList<States> stateList;
List<String> keys;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
database= FirebaseDatabase.getInstance();
ref=database.getReference("Stops");
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
stateList = new ArrayList<States>();
keys=new ArrayList<>();
System.out.println("@@@@");
//states=new States();
System.out.println("@@@@");
for(DataSnapshot ds: dataSnapshot.getChildren())
{
System.out.println(states=ds.getValue(States.class));
if(states.isSelected()==false) {
keys.add(ds.getKey());
_states = new States(states.getCode(), states.getName(), states.isSelected());
states.setKey(ds.getKey());
System.out.println(states.getKey()+" "+states.getName() + states.getCode() + states.isSelected());
stateList.add(_states);
System.out.println(stateList);
}
}
displayListView();
checkButtonClick();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError)
{
}
});
//Generate list View from ArrayList
//Generate list View from ArrayList
// displayListView();
}
private void displayListView()
{
//create an ArrayAdaptar from the String Array
dataAdapter = new MyCustomAdapter(this,R.layout.state_info, stateList);
ListView listView = (ListView) findViewById(R.id.listView1);
// Assign adapter to ListView
listView.setAdapter(dataAdapter);
listView.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
// When clicked, show a toast with the TextView text
States state = (States) parent.getItemAtPosition(position);
Toast.makeText(getApplicationContext(),"Clicked on Row: " + state.getName(),
Toast.LENGTH_LONG).show();
}
});
}
private class MyCustomAdapter extends ArrayAdapter<States>
{
private ArrayList<States> stateList;
public MyCustomAdapter(Context context, int textViewResourceId,
ArrayList<States> stateList)
{
super(context, textViewResourceId, stateList);
this.stateList = new ArrayList<States>();
this.stateList.addAll(stateList);
}
private class ViewHolder
{
TextView code;
CheckBox name;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder = null;
Log.v("ConvertView", String.valueOf(position));
if (convertView == null)
{
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = vi.inflate(R.layout.state_info, null);
holder = new ViewHolder();
holder.code = (TextView) convertView.findViewById(R.id.code);
holder.name = (CheckBox) convertView.findViewById(R.id.checkBox1);
convertView.setTag(holder);
holder.name.setOnClickListener( new View.OnClickListener()
{
public void onClick(View v)
{
CheckBox cb = (CheckBox) v;
States _state = (States) cb.getTag();
Toast.makeText(getApplicationContext(), "Clicked on Checkbox: " + cb.getText() + " is " + cb.isChecked(),
Toast.LENGTH_LONG).show();
_state.setSelected(cb.isChecked());
}
});
}
else
{
holder = (ViewHolder) convertView.getTag();
}
States state = stateList.get(position);
holder.code.setText(" (" + state.getCode() + ")");
holder.name.setText(state.getName());
holder.name.setChecked(state.isSelected());
holder.name.setTag(state);
return convertView;
}
}
private void checkButtonClick()
{
Button myButton = (Button) findViewById(R.id.findSelected);
myButton.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
int j=0;
StringBuffer responseText = new StringBuffer();
final ArrayList<States> statList = dataAdapter.stateList;
for(int i=0;i<statList.size();i++)
{
final States sta = statList.get(i);
if(sta.isSelected()) {
responseText.append("\n" + sta.getName());
j = j + sta.getCode();
System.out.println("@@@@@@@@@@@@");
System.out.println("@@@@@@@@@@@@@");
System.out.println("@@@@@@@@@@@@");
System.out.println("!!!!!!!!!!!!!");
System.out.println(keys.get(i));
// ref=database.getReference("stops").child("")
}
}
if(j<=15) {
responseText.append("The following were selected \n");
Toast.makeText(getApplicationContext(),
responseText+" Your total number of students "+ j, Toast.LENGTH_LONG).show();
for(int i=0;i<statList.size();i++)
{
final States sta = statList.get(i);
if(sta.isSelected()) {
database.getReference("Stops").child(keys.get(i)).child("selected").setValue(true);
} // ref=database.getReference("stops").child("")
}
System.out.println("@@@@@@@@@@@@");
System.out.println("@@@@@@@@@@@@@");
System.out.println("@@@@@@@@@@@@");
System.out.println("!!!!!!!!!!!!!");
}
else
{
responseText.append(" Does not comes under bus seats limited to 15\n");
Toast.makeText(getApplication(),
responseText, Toast.LENGTH_LONG).show();
for(int i=0;i<statList.size();i++)
{
final States stat = statList.get(i);
stat.setSelected(false);
}
displayListView();
}
}
});
}
}
States.java
package com.example.listview1;
public class States
{
int code ;
String name ;
boolean selected ;
String key;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public States() {
}
public States(int code, String name, boolean selected) {
this.code = code;
this.name = name;
this.selected = selected;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isSelected() {
return selected;
}
public void setSelected(boolean selected) {
this.selected = selected;
}
}
База данныхиерархия "Остановки": {"01": {"code": 3, "name": "PALASIA", "selected": true}, "02": {"code": 6, "name": "mr10", "selected": true}, "03": {"code": 2, "name": "NAVLAKHA", "selected": true}, "04": {"code": 4, "name": "BHAWARKUA "," selected ": false}," 05 ": {" code ": 2," name ":" MEGHDOOT GARDEN "," selected ": false}," 06 ": {" code ": 4," name":" VISHNUPURI COLONY "," selected ": false}," 07 ": {" code ": 6," name ":" VIJAY NAGAR "," selected ": false}," 08 ": {" code ":9, "name": "MR 9", "selected": false}, "09": {"code": 4, "name": "BAPAT CHAURAHA", "selected": false}},