package com.android.xont.controller; import android.app.Activity; import android.app.ExpandableListActivity; import android.app.ListActivity; import android.content.Intent; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.Gravity; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.BaseExpandableListAdapter; import android.widget.ExpandableListAdapter; import android.widget.ExpandableListView; import android.widget.ExpandableListView.ExpandableListContextMenuInfo; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import android.widget.AdapterView.OnItemClickListener; public class SettingScreenActivity extends ExpandableListActivity { static final String[] SETTINGOPITONS = new String[] { "Theme", "Database Setup" }; private static Drawable sBackground; ExpandableListAdapter mAdapter; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); sBackground = getResources().getDrawable(R.drawable.wallpaper); // Set up our adapter mAdapter = new MyExpandableListAdapter(); setListAdapter(mAdapter); getExpandableListView().setBackgroundDrawable(sBackground); getExpandableListView().setTextFilterEnabled(true); registerForContextMenu(getExpandableListView()); } @Override public boolean onContextItemSelected(MenuItem item) { ExpandableListContextMenuInfo info = (ExpandableListContextMenuInfo) item.getMenuInfo(); String title = ((TextView) info.targetView).getText().toString(); int type = ExpandableListView.getPackedPositionType(info.packedPosition); System.out.println(" ----- " + type); if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) { int groupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition); int childPos = ExpandableListView.getPackedPositionChild(info.packedPosition); Toast.makeText(this,title + ": Child " + childPos + " clicked in group "+ groupPos, Toast.LENGTH_SHORT).show(); return true; } else if (type == ExpandableListView.PACKED_POSITION_TYPE_GROUP) { int groupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition); Toast.makeText(this, title + ": Group " + groupPos + " clicked",Toast.LENGTH_SHORT).show(); return true; } return false; } @Override public boolean onChildClick(ExpandableListView parent, View v,int gp, int cp, long id) { System.out.println(" ----- " + gp + "======= " + cp); if(gp == 1 && cp == 0){ Intent showContent = new Intent(getApplicationContext(),CreateNormalDatabaseActivity.class); startActivity(showContent); }else{ Intent showContent = new Intent(getApplicationContext(),CreateNormalDatabaseActivity.class); startActivity(showContent); } return super .onChildClick(parent, v, gp, cp, id); } public class MyExpandableListAdapter extends BaseExpandableListAdapter { // Sample data set. children[i] contains the children (String[]) for groups[i]. //static final String[] SETTINGOPITONS = new String[] { }; private String[] groups = { "Theme","Database Setup" ,"Synchronization","Change Password" }; private String[][] children = { { "Font Setting", "Backgroud Setting"}, { "Master Database", "Normal Database"}, { "Download", "Upload"}, { ""} }; public Object getChild(int groupPosition, int childPosition) { return children[groupPosition][childPosition]; } public long getChildId(int groupPosition, int childPosition) { return childPosition; } public int getChildrenCount(int groupPosition) { return children[groupPosition].length; } public TextView getGenericView() { // Layout parameters for the ExpandableListView AbsListView.LayoutParams lp = new AbsListView.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, 64); TextView textView = new TextView(SettingScreenActivity.this); textView.setLayoutParams(lp); // Center the text vertically textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT); // Set the text starting position textView.setPadding(45, 13, 13, 13); return textView; } public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { TextView textView = getGenericView(); textView.setText(getChild(groupPosition, childPosition).toString()); return textView; } public Object getGroup(int groupPosition) { return groups[groupPosition]; } public int getGroupCount() { return groups.length; } public long getGroupId(int groupPosition) { return groupPosition; } public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { TextView textView = getGenericView(); textView.setText(getGroup(groupPosition).toString()); return textView; } public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } public boolean hasStableIds() { return true; } } }