2016-10-05 3 views
0

java.lang.IllegalStateException : CursorWindow에서 행 0, 열 0을 읽을 수 없습니다. 커서가 데이터에 액세스하기 전에 커서가 올바르게 초기화되었는지 확인하십시오.CursorWindow에서 행 0, 열 0을 읽을 수 없습니다.

public class MyProfile extends AppCompatActivity { 
    private Context mContext; 
    private ImageView i1, i2,i3; 
    private static final int SELECT_IMAGE = 1; 
    private StoreProfileData mStore; 
    SQLiteDatabase db; 
    String path; 
    Cursor cursor,c; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_my_profile); 
     mContext = MyProfile.this; 
     i1 = (ImageView) findViewById(R.id.user_profile_photo); 
     i2 = (ImageView) findViewById(R.id.user_profile_photo_hidden); 
     i3 = (ImageView) findViewById(R.id.header_cover_image); 
     db=this.openOrCreateDatabase("test.db",Context.MODE_PRIVATE,null); 
     db.execSQL("create table if not exists tb(a blob)"); 

    } 
    public void initialize() { 
     i2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent i = new Intent(Intent.ACTION_PICK, 
         android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI); 
       final int ACTIVITY_SELECT_IMAGE = 1234; 
       startActivityForResult(i, ACTIVITY_SELECT_IMAGE); 
      } 
     }); 
    } 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     switch (requestCode) { 
      case 1234: 
       if (resultCode == RESULT_OK) { 
        Uri selectedImage = data.getData(); 
        String[] filePathColumn = {MediaStore.Images.Media.DATA}; 
        cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); 
        cursor.moveToFirst(); 
        int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
        String filePath = cursor.getString(columnIndex); 
        File f = new File(filePath); 
        path=f.getPath(); 
        Log.d("path",path); 
        cursor.close(); 
       //  Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath); 
       // i2.setImageBitmap(yourSelectedImage); 

       } 
     } 
    } 

는 성공적으로 SQLite는 데이터베이스에 경로를 instereted되는 이미지 저장 방법

public void saveImage(View view) 
    { 
     try { 
      FileInputStream fts = null; 
      fts = new FileInputStream(path); 
      byte[]image=new byte[fts.available()]; 
      fts.read(image); 
      ContentValues values=new ContentValues(); 
      values.put("a",image); 
      db.insert("tb", null, values); 
      fts.close(); 
      Toast.makeText(this,"inserted",Toast.LENGTH_LONG).show(); 
     } 
     catch (IOException e){ 
      e.printStackTrace(); 
     } 
    } 

여기 데이터베이스에 삽입에서 나는 오류 중 mesg을 얻을 GET 이미지의 된 GetImage 방법

public void getImage(View view) { 
      cursor = db.rawQuery("select * from tb", null); 
     Log.d("dv", String.valueOf(cursor)); 
     if (cursor.getCount() > 0) { 
      Log.d("crsr", "sdds"); 
      if (cursor.moveToNext()) { 
       byte[] image = cursor.getBlob(0); 
       Bitmap bmp = BitmapFactory.decodeByteArray(image, 0, image.length); 
       i2.setImageBitmap(bmp); 
       Toast.makeText(this, "selected", Toast.LENGTH_LONG).show(); 
      } 
     } 
    } 
} 
+0

이미지 경로 또는 해당 이미지의 바이트 배열 문자열을 저장할 수 있습니다. –

+0

myprofile 페이지의 이미지 뷰 값을 스토리 데이터에 삽입하는 방법은 무엇입니까? –

+0

어떻게 이미지 뷰에서 값을 설정합니까? xml 파일에 있습니까? –

답변

0

로 변경 '

private static String IMAGE_CREATE_QUERY = "CREATE TABLE " + IMAGE_TABLE_NAME + " (" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT," + KEY_EMAIL + " TEXT," + KEY_NUMBER + " TEXT," + KEY_CLASS + " TEXT," + KEY_STREAM + " TEXT," + KEY_IMAGE + " BLOB)";` 
+1

선생님 어떻게 imageview 값을 삽입하고 imageview에서 검색 할 수 있습니까? –

+1

왜 이미지를 데이터베이스에 저장하고 있습니까? –

+0

이미지를 응용 프로그램 폴더에 추가하십시오. URL을 저장하고 필요할 때마다이 URL에서 이미지를 가져옵니다. –

관련 문제