Hello! There are 2 activities, both inherited from ListActivity and both are populated with information from the sqlite database. The first activity: the listview is filled with groups, everything is normal. The second activity: the listview is filled with subgroups depending on the selected group, this is where the problem is - the listview is not filled. Help please find a mistake!
First activity code:
public class GroupActivity extends ListActivity { private static final String DB_NAME = "SpravDB.sqlite"; private static final String TABLE_NAME = "Groups"; private static final String GROUP_ID = "_id"; // ключи групп. private static final String GROUP_NAME = "Name_Group"; private SQLiteDatabase database; private ListView listView; private ArrayList<String> groups; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_group); SpravSQLhelper dbOpenHelper = new SpravSQLhelper(this, DB_NAME); database = dbOpenHelper.openDataBase(); fillGroups(); setUpList(); } private void setUpList() { setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, groups)); OnItemClickListener itemClick = new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) { Intent intentF = new Intent(); intentF.setClass(GroupActivity.this, SubGroupActivity.class); String itemid = new Integer(position).toString(); Bundle a = new Bundle(); a.putString("itemid", itemid); intentF.putExtras(a); startActivity(intentF); } }; getListView().setOnItemClickListener(itemClick); } private void fillGroups() { groups = new ArrayList<String>(); Cursor groupCursor = database.query(TABLE_NAME, new String[] { GROUP_ID, GROUP_NAME }, null, null, null, null, GROUP_NAME); groupCursor.moveToFirst(); if (!groupCursor.isAfterLast()) { do { String name = groupCursor.getString(1); groups.add(name); } while (groupCursor.moveToNext()); } groupCursor.close(); } } Second activity code:
public class SubGroupActivity extends ListActivity { private static final String DB_NAME = "SpravDB.sqlite"; private static final String GROUP_ID = "ID_Group"; // ключи групп, в зависимости //от которых будет заполняться подгруппа private static final String SUBGROUP_ID = "_id"; // ключи подгрупп private static final String SUBGROUP_NAME = "Name_Subgroup"; private SQLiteDatabase database; private ListView listView; private ArrayList subgroups; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_subgroup); SpravSQLhelper dbOpenHelper = new SpravSQLhelper(this, DB_NAME); database = dbOpenHelper.openDataBase(); fillSubGroups(); setUpList(); } private void setUpList() { // TODO Auto-generated method stub setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, subgroups)); OnItemClickListener itemClick = new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), "Вы выбрали " + parent.getItemIdAtPosition(position), Toast.LENGTH_SHORT).show(); } }; getListView().setOnItemClickListener(itemClick); } private void fillSubGroups() { // TODO Auto-generated method stub Intent intentF = getIntent(); String ID_Group = intentF.getStringExtra("itemid"); subgroups = new ArrayList<String>(); String TABLE_NAME = "Subgroups"; Cursor subgroupCursor = database.query(TABLE_NAME, new String[] { SUBGROUP_ID, GROUP_ID, SUBGROUP_NAME }, GROUP_ID + "=?", new String[] { String.valueOf(ID_Group) }, null, null, null, null); subgroupCursor.moveToFirst(); if (!subgroupCursor.isAfterLast()) { do { String name = subgroupCursor.getString(1); subgroups.add(name); } while (subgroupCursor.moveToNext()); } subgroupCursor.close(); } }