package main.sample; import android.app.Activity; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.widget.ListView; import com.activeandroid.ActiveAndroid; import com.activeandroid.query.Select; import com.twotoasters.multicolumnlistadapter.sample.R; import main.sample.ToasterData.Toaster; import java.util.List; public class MainActivity extends Activity { private ListView multiColumnList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); loadToastersIntoDatabase(); setupGrid(); } private void loadToastersIntoDatabase() { List<ToasterModel> toasterModels = new Select().from(ToasterModel.class).execute(); if (toasterModels == null || toasterModels.size() == 0) { ActiveAndroid.beginTransaction(); try { Toaster[] toasters = ToasterData.getToasters(); for (Toaster toaster : toasters) { ToasterModel toasterModel = new ToasterModel(); toasterModel.name = toaster.name; toasterModel.imageResId = toaster.imageResId; toasterModel.save(); } ActiveAndroid.setTransactionSuccessful(); } finally { ActiveAndroid.endTransaction(); } } } private void setupGrid() { SQLiteDatabase db = ActiveAndroid.getDatabase(); Cursor cursor = db.query(ToasterModel.TABLE_NAME, null, null, null, null, null, null); ToasterAdapter adapter = new ToasterAdapter(this, cursor, R.layout.grid_item, R.integer.num_columns, R.dimen.grid_spacing, R.dimen.grid_spacing); View headerView = LayoutInflater.from(this).inflate(R.layout.view_header, null, false); View footerView = LayoutInflater.from(this).inflate(R.layout.view_footer, null, false); multiColumnList = (ListView) findViewById(R.id.multiColumnList); multiColumnList.addHeaderView(headerView); multiColumnList.addFooterView(footerView); multiColumnList.setAdapter(adapter); } }