I have an expandable list using a simplecursortreeadapter
How would I integrate an onclicklistener or any way to change the
Below is my script so far. I was trying to use the onclicklistener at the bottom of this post, but I cannot figure out how to change it from a listview to expandable listview listener for the children.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cattest);
SQLiteDatabase checkDB = null;
checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
Cursor groupCursor = checkDB.rawQuery("SELECT * FROM countries", null);
MySimpleCursorTreeAdapter mscta = new MySimpleCursorTreeAdapter(
this,
groupCursor,
R.layout.employee_list_item,
new String[] {"country"},
new int[] {R.id.country},
R.layout.employee_list_item,
new String[] {"employee"},
new int[] {R.id.lastName});
setListAdapter(mscta);
checkDB.close();
}
class MySimpleCursorTreeAdapter extends SimpleCursorTreeAdapter{
public MySimpleCursorTreeAdapter(Context context, Cursor cursor,
int groupLayout, String[] groupFrom, int[] groupTo,
int childLayout, String[] childFrom, int[] childTo) {
super(context, cursor, groupLayout, groupFrom, groupTo, childLayout, childFrom,
childTo);
}
@Override
protected Cursor getChildrenCursor(Cursor groupCursor) {
String countryID = Integer.toString(groupCursor.getInt(0));
SQLiteDatabase checkDB = null;
checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
Cursor value = checkDB.rawQuery("SELECT * FROM employee WHERE _id='"+ countryID +"'", null);
String test = "";
if(value.moveToFirst())
test = value.getInt(0) + ": " + value.getString(1);
while(value.moveToNext()){
test += ";" + value.getInt(0) + ": " + value.getString(1);
}
return value;
}
}
Tried implementing this
questionList = (ListView) findViewById (R.id.list);
sample(typedText);
questionList.setOnItemClickListener(
new OnItemClickListener()
{
public void onItemClick(AdapterView<?> arg0, View view,
int position, long id) {
Intent intent = new Intent(All.this, com.second.app.Second.class);
Cursor cursor = (Cursor) adapter.getItem(position);
intent.putExtra("EMPLOYEE_ID", cursor.getInt(cursor.getColumnIndex("_id")));
//Cursor cursor = (Cursor) adapter.getItem(position);
//intent.putExtra("EMPLOYEE_ID", cursor.getInt(cursor.getColumnIndex("_id")));
startActivity(intent);
}
}
);
EDIT:
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition,
int childPosition, long id) {
// use groupPosition and childPosition to locate the current item in the adapter
Intent intent = new Intent(Categories.this, com.second.app.Second.class);
Cursor cursor = (Cursor) mscta.getItem(childPosition);
intent.putExtra("EMPLOYEE_ID", cursor.getInt(cursor.getColumnIndex("_id")));
//Cursor cursor = (Cursor) adapter.getItem(position);
//intent.putExtra("EMPLOYEE_ID", cursor.getInt(cursor.getColumnIndex("_id")));
startActivity(intent);
return true;
}
At the moment the getChild(childPosition); is outputting the error
The method getItem(int) is undefined for the type
Categories.MySimpleCursorTreeAdapter
Look into the setOnChildClickListener method: http://developer.android.com/reference/android/widget/ExpandableListView.html#setOnChildClickListener(android.widget.ExpandableListView.OnChildClickListener)