갤러리를 열고 이미지를 선택 후 스키마값에 따라서 file형식으로 변경하는 부분입니다. 그런데 이상하게도 else if(data.getScheme() == "file") 이부분을 들어가질 않습니다 로그로 찍어보면 분명 스키마값은 file 인데도 안들어갑니다 처음엔 기본갤러리이고 두번째는 es파일탐색기로 이미지를 클릭했습니다. 왜이런걸까요?; protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
Log.d("data","data.getScheme - " + data.getScheme());
if( requestCode == 0 )
{
if( data != null )
{
if(data.getScheme() != "file")
{
// Uri imgUri = data.getData(); // 여기서 Data 받고
// String[] proj = { MediaStore.Images.Media.DATA };
// Cursor cursor = managedQuery(imgUri, proj, null, null, null);
// int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
// cursor.moveToFirst();
// path = cursor.getString(column_index);
Log.d("data","-content- "+path);
}
else if(data.getScheme() == "file")
{
path = data.getDataString();
Log.d("data", "-file- "+path);
}
}
}
}
07-19 20:25:19.035: DEBUG/data(9476): data.getScheme - content
07-19 20:25:19.035: DEBUG/data(9476): -content- null
07-19 20:25:33.621: DEBUG/data(9476): data.getScheme - file
07-19 20:25:33.621: DEBUG/data(9476): -content- null




자바에서 String 비교 시의 equals() 와 "==" 의 차이점을 찾아보세요.
위의 구문에서 값을 비교하기 위한 목적으로는 equals() 메서드를 사용해야겠지요.