ExpandableList and SQL
Добавлено: 11 июл 2013, 23:15
Добрый вечер. Вот у меня есть ЭкспЛистВЬю я хочу чтобы по нажатию на чайлд элемент его содержмиое(сейчас 1 слово name, в дальнейшем нужно будет массив) заносилось в базу данных то что я написал вызывает ошибку.Выкладываю мейн активити.
ПС я разобрался с этими темами по отдельности, но как их соединить ума не приложу, поэтому мой код выделенный жирным может повергнуть в шок. Заранее спасибо
expList.setOnChildClickListener(new OnChildClickListener() {
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
ContentValues cv = new ContentValues();
SQLiteDatabase db = dbHelper.getWritableDatabase();
String name = getString(R.array.past_titles);
cv.put("name", name);
// вставляем запись и получаем ее ID
db.insert("mytable", null, cv);
Код: Выделить всё
public class ExpandableListActivity extends Activity {
private ExpandableListView expList;
private ExpandableListAdapter expListAdapter;
DBHelper dbHelper;
private Resources res;
/*
* (non-Javadoc)
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.expandable_list_layout);
expList = (ExpandableListView) findViewById(R.id.expandableList);
expListAdapter = new ExpandableListAdapter(getApplicationContext());
//removes the standard group state indicator
expList.setGroupIndicator(null);
dbHelper = new DBHelper(this);
/*
* Setting up mock data
*/
ArrayList<TravelItem> futureItems = new ArrayList<TravelItem>();
ArrayList<TravelItem> pastItems = new ArrayList<TravelItem>();
res = getResources();
for(int x = 0; x < res.getStringArray(R.array.future_titles).length; x++){
TravelItem future = new TravelItem();
future.setTitle(res.getStringArray(R.array.future_titles)[x]);
future.setDeparture(res.getStringArray(R.array.future_departures)[x]);
future.setDestination(res.getStringArray(R.array.future_destinations)[x]);
future.setDate(res.getStringArray(R.array.future_dates)[x]);
future.setTime(res.getStringArray(R.array.future_times)[x]);
futureItems.add(future);
}
for(int zx = 0; zx < res.getStringArray(R.array.past_titles).length; zx++){
TravelItem past = new TravelItem();
past.setTitle(res.getStringArray(R.array.past_titles)[zx]);
past.setDeparture(res.getStringArray(R.array.past_departures)[zx]);
past.setDestination(res.getStringArray(R.array.past_destinations)[zx]);
past.setDate(res.getStringArray(R.array.past_dates)[zx]);
pastItems.add(past);
}
//send data to adapter
expListAdapter.setupTrips(pastItems, futureItems);
//tie the adapter to our expandable list view
expList.setAdapter(expListAdapter);
/*
* if there is at least one child, expand the first
* group by default. (future travel plans)
*/
if(expListAdapter.getChildrenCount(0) >= 1){
expList.expandGroup(0);
}
/*
* override the onGroupClick method to make sure the
* first group (future travel plans) does not collapse
* or expand.
*/
[b]expList.setOnChildClickListener(new OnChildClickListener() {
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
ContentValues cv = new ContentValues();
SQLiteDatabase db = dbHelper.getWritableDatabase();
String name = getString(R.array.past_titles);
cv.put("name", name);
// вставляем запись и получаем ее ID
db.insert("mytable", null, cv);[/b]
return false;
}
});
expList.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v,
int groupPosition, long id) {
if(groupPosition == 0){
return true;
} else {
return false;
}
}
});
}
}ПС я разобрался с этими темами по отдельности, но как их соединить ума не приложу, поэтому мой код выделенный жирным может повергнуть в шок. Заранее спасибо
expList.setOnChildClickListener(new OnChildClickListener() {
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
ContentValues cv = new ContentValues();
SQLiteDatabase db = dbHelper.getWritableDatabase();
String name = getString(R.array.past_titles);
cv.put("name", name);
// вставляем запись и получаем ее ID
db.insert("mytable", null, cv);