2013-01-12 29 views
0

我是新来的:d检索数据库SQLite的Android的另一个图像

我在我的Android应用程序检索数据库SQLite的图像,但是当我试图让其他图像,图像还只是同以前一样。它总是retrive从第1行的形象,我不知道为什么

这是我的代码

public void findAlphabet(View view) { 
    try { 
     db = kamusTI.getWritableDatabase(); 
     String sql = "SELECT * FROM kamusti WHERE istilah LIKE '" 
       + editAlphabet.getText().toString() + "%' ORDER BY istilah"; 
     cursor = db.rawQuery(sql, null);    
     adapter2 = new SimpleCursorAdapter(this, 
       android.R.layout.simple_list_item_2, cursor, new String[] { 
         "istilah", "definisi" }, new int[] { 
         android.R.id.text1, android.R.id.text2 }); 
     listView2.setAdapter(adapter2); 
     listView2.setTextFilterEnabled(true); 
     String sql1 = "SELECT COUNT(istilah) FROM kamusti WHERE istilah LIKE '" 
       + editAlphabet.getText().toString() + "%' ORDER BY istilah"; 
     cursor = db.rawQuery(sql1, null); 
     cursor.moveToFirst(); 

     cur = db.query("kamusti", null, null, null, null, null, null); 
     cur.moveToFirst(); 
    // cur.moveToPosition(0); 
     byte[] im = cur.getBlob(3); 
     // ByteArrayInputStream imagestream = new ByteArrayInputStream(im); 
      Bitmap imagestream = BitmapFactory.decodeByteArray(im, 0, im.length); 
     // Bitmap image = BitmapFactory.decodeStream(imagestream); 
      img = (ImageView) findViewById (R.id.gambar); 
      img.setImageBitmap(imagestream); 
     hasilCari.setText("Hasil Pencarian : " + cursor.getInt(0)); 
    } catch (SQLException e) { 
     hasilCari.setText(e.toString()); 
    } 
} 

我没有任何想法如何解决这一问题。当我尝试在我的应用程序中查找另一个字母时,图像将始终显示在数据库的第1行中。 请帮我:)

*我的英文不好

回答

0

哦,对不起的人,我很抱歉,但我必须说的:你的代码是真正可怕的......

它不是在举办所有,但也许...不应该byte[] im = cur.getBlob(3);byte[] im = cursor.getBlob(3);而不是?


编辑:试评第二和第三个疑问,因为他们似乎无用,使“小人” - 我建议>“光标”的变化:

public void findAlphabet(View view) { 
     try { 
      db = kamusTI.getWritableDatabase(); 
      String sql = "SELECT * FROM kamusti WHERE istilah LIKE '" 
        + editAlphabet.getText().toString() + "%' ORDER BY istilah"; 
      cursor = db.rawQuery(sql, null);    
      adapter2 = new SimpleCursorAdapter(this, 
        android.R.layout.simple_list_item_2, cursor, new String[] { 
          "istilah", "definisi" }, new int[] { 
          android.R.id.text1, android.R.id.text2 }); 
      listView2.setAdapter(adapter2); 
      listView2.setTextFilterEnabled(true); 
//   String sql1 = "SELECT COUNT(istilah) FROM kamusti WHERE istilah LIKE '" 
//     + editAlphabet.getText().toString() + "%' ORDER BY istilah"; 
//   cursor = db.rawQuery(sql1, null); 
       cursor.moveToFirst(); 

//   cur = db.query("kamusti", null, null, null, null, null, null); 
//   cur.moveToFirst(); 
     // cur.moveToPosition(0); 
      byte[] im = cursor.getBlob(3); 
      // ByteArrayInputStream imagestream = new ByteArrayInputStream(im); 
       Bitmap imagestream = BitmapFactory.decodeByteArray(im, 0, im.length); 
      // Bitmap image = BitmapFactory.decodeStream(imagestream); 
       img = (ImageView) findViewById (R.id.gambar); 
       img.setImageBitmap(imagestream); 
      hasilCari.setText("Hasil Pencarian : " + cursor.getInt(0)); 
     } catch (SQLException e) { 
      hasilCari.setText(e.toString()); 
     } 
    } 
+0

我试试吧,但当我点击搜索按钮时,该应用程序强制关闭:( – user1972172

+0

然后,如果您希望我们帮助您,您应该编辑原始帖子并复制/粘贴LogCat例外。另一方面,您应该改进代码...为什么你需要3个查询吗?看起来你的第一个查询是你需要的,但其他两个呢?顺便说一句,你应该更好地解释一些事情,我假设你的findAlphabet方法是在XML布局中定义的按钮的onClick处理程序,不是吗?你从来没有说过,但你认为我们已经知道... – thelawnmowerman

+0

我编辑了我的答案上面,尝试建议的代码... – thelawnmowerman

相关问题