Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to show data fetched by database in gridview?
    primarykey
    data
    text
    <p>I want to show data(image and text) in grid view by fetching it from database.I amm trying to first insert the data in database table and try to fetch the data from database and to show it in gridview.</p> <p>This is my main activity</p> <pre><code> public class MainActivity extends Activity { private RelativeLayout rl; private Tab TabOrder; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); rl = (RelativeLayout) findViewById(R.id.mainLayout); ActionBar actionbar = getActionBar(); actionbar.setTitle("Select To Order"); actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); TabOrder = actionbar.newTab().setText("ORDER"); Fragment FragmentOrder = new FragmentOrder(); TabOrder.setTabListener(new MyTablistenerClass(FragmentOrder)); actionbar.addTab(TabOrder); } @SuppressLint("ValidFragment") public class FragmentOrder extends Fragment{ private Context context; private int layoutResourceId; private ArrayList&lt;Category&gt; data; ArrayList&lt;Category&gt; imageArry = new ArrayList&lt;Category&gt;(); OrderAdapter adapter; private ArrayList&lt;Category&gt; categories; @SuppressLint("NewApi") @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.griddeal, null); DatabaseManager db = new DatabaseManager(MainActivity.this); // get image from drawable // Bitmap image = BitmapFactory.decodeResource(getResources(), // R.drawable.car); // // // convert bitmap to byte // ByteArrayOutputStream stream = new ByteArrayOutputStream(); // image.compress(Bitmap.CompressFormat.JPEG, 100, stream); // byte imageInByte[] = stream.toByteArray(); /** * CRUD Operations * */ // Inserting Contacts Log.d("Insert: ", "Inserting .."); Category c1 = new Category(); c1.setCategorydescription("vegetables"); Bitmap image = BitmapFactory.decodeResource(getResources(), R.drawable.car); // convert bitmap to byte ByteArrayOutputStream stream = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 100, stream); byte imageInByte[] = stream.toByteArray(); db.insertCategoriesDetail(c1); //db.insertCategoriesDetail(new Category("Vegetables", imageInByte)); // display main List view bcard and contact name // Reading all contacts from database List&lt;Category&gt; categories = db.getCategoriesDetail(); for (Category cn : categories) { String log = "ID:" + cn.getId() + " Name: " + cn.getCategorydescription() + " ,Image: " + cn.getCategoryimage(); // Writing Contacts to log Log.d("Result: ", log); //add contacts data in arrayList imageArry.add(cn); } adapter = new OrderAdapter(MainActivity.this, R.layout.griddealitems, imageArry); GridView dataList = (GridView) findViewById(R.id.GridDeal); dataList.setAdapter(adapter); dataList.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView&lt;?&gt; arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub } }); return view; } } public class OrderAdapter extends ArrayAdapter&lt;Category&gt;{ Context context; int layoutResourceId; // BcardImage data[] = null; ArrayList&lt;Category&gt; data=new ArrayList&lt;Category&gt;(); public OrderAdapter(Context context, int layoutResourceId, ArrayList&lt;Category&gt; data) { // TODO Auto-generated constructor stub super(context, layoutResourceId, data); this.layoutResourceId = layoutResourceId; this.context = context; this.data = data; } @Override public View getView(int position, View convertView, ViewGroup parent) { View row = convertView; ImageHolder holder = null; if(row == null) { LayoutInflater inflater = ((Activity)context).getLayoutInflater(); row = inflater.inflate(layoutResourceId, parent, false); holder = new ImageHolder(); holder.grid_deal_text = (TextView)row.findViewById(R.id.grid_deal_text); holder.imgIcon = (ImageView)row.findViewById(R.id.grid_deal_image); row.setTag(holder); } else { holder = (ImageHolder)row.getTag(); } Category picture = data.get(position); holder.grid_deal_text.setText(picture.categorydescription); //convert byte to bitmap take from contact class byte[] outImage=picture.categoryimage; ByteArrayInputStream imageStream = new ByteArrayInputStream(outImage); Bitmap theImage = BitmapFactory.decodeStream(imageStream); holder.imgIcon.setImageBitmap(theImage); return row; } public class ImageHolder { ImageView imgIcon; TextView grid_deal_text; } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } public class MyTablistenerClass implements android.app.ActionBar.TabListener { Fragment fragment1; @SuppressLint("NewApi") public MyTablistenerClass(Fragment fragment){ this.fragment1 = fragment; } @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { // TODO Auto-generated method stub } @SuppressLint("NewApi") @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { // TODO Auto-generated method stub FragmentTransaction fragMentTra; ActionBar actionBar = getActionBar(); actionBar.show(); actionBar.setTitle("Select Category"); //actionBar.setIcon(R.id.search); FragmentOrder Fram2 = new FragmentOrder(); //fragMentTra.addToBackStack(null); fragMentTra = getFragmentManager().beginTransaction(); fragMentTra.add(rl.getId(), Fram2); fragMentTra.commit(); } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { } } } </code></pre> <p>This my databaseManager class:</p> <pre><code> public class DatabaseManager { private Context context = null; private SQLiteDatabase database=null; private DatabaseHelper dbHelper=null; public DatabaseManager(Context context) { this.context = context; dbHelper = new DatabaseHelper(context); } public void open() throws SQLException { if (dbHelper==null) { dbHelper = new DatabaseHelper(context); } if (database==null) { database = dbHelper.getWritableDatabase(); } } public void close() { dbHelper.close(); database = null; dbHelper = null; } public long insertCategoriesDetail(Category categorydetail){ long result = 0; try{ if (database==null) { open(); } ContentValues values = new ContentValues(); values.put(DatabaseContract.RetailDatabaseEntry.COLUMN_CATEGORYDESCRIPTION, categorydetail.getCategorydescription()); values.put(DatabaseContract.RetailDatabaseEntry.COLUMN_CATEGORYIMAGE, categorydetail.getCategoryimage()); result = database.insert(DatabaseContract.RetailDatabaseEntry.TABLE_NAME_CATEGORY, null, values); Toast.makeText(context, "Res : " + result, Toast.LENGTH_SHORT).show(); close(); }catch(Exception ex){ Toast.makeText(context, "crashed" + ex.toString(), Toast.LENGTH_SHORT).show(); } return result; } public List&lt;Category&gt; getCategoriesDetail() { if (database==null) { open(); } List&lt;Category&gt; categoriesdetailsList = new ArrayList&lt;Category&gt;(); // Select All Query String selectQuery = "SELECT * FROM " + DatabaseContract.RetailDatabaseEntry.TABLE_NAME_CATEGORY; Cursor cursor = database.rawQuery(selectQuery, null); // looping through all rows and adding to list if (cursor.moveToFirst()) { do { Category detailList = new Category(); detailList.setId(Integer.parseInt(cursor.getString(0))); detailList.setCategorydescription(cursor.getString(1)); detailList.setCategoryimage(cursor.getBlob(2)); categoriesdetailsList.add(detailList); } while (cursor.moveToNext()); } close(); return categoriesdetailsList; } } </code></pre> <p>Logcat:</p> <pre><code>11-15 16:57:39.127: E/AndroidRuntime(703): FATAL EXCEPTION: main 11-15 16:57:39.127: E/AndroidRuntime(703): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.orderdatabase/com.example.orderdatabase.MainActivity}: java.lang.NullPointerException 11-15 16:57:39.127: E/AndroidRuntime(703): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1955) </code></pre> <p>Whatever I am doing is not working.I am getting nullpointerexception. Please anybody tell me where i m wrong.</p> <p>Thanks.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload