우선 질문이 길고 난해해서 뒤로가기 누르시고싶은마음 100번 이해하지만 저좀 살려주세요...일본회사와서 친구도없고 가족도없고 자바도 처음인데 혼자해야되고 저 힘들어요...ㅠㅠ
 
먼저 책장 어플이구요. 메인화면에 저장해놓은 책들이 각각 이미지+텍스트로 나와있고 책이미지를 클릭하면 팝업창이 나와서 자세하게 보여주는겁니다.
 
책이 5권있으면 총5권분의 DB가 있겠죠?
근데 책 하나를 클릭하면 detailview에는 그 한권의 정보만 보입니다
이건 select문의 where을 이용해서 원하는 레코드만 뽑아오는거죠
근데 그 Where 레코드명 = ...
이런식은데 우와...도대체 클릭한걸로 어떻게 저걸 판단할지 도무지 모르겠는겁니다.
 
결과적으로 제가하려는건
책 목록중 클릭한 책의 DB만 뽑아서 트위터로 전송하려고 하는데...
detailview(클릭했을때 클릭한 책 정보만 나타나는거)가 제가 하고자하는 책 한권의 정보만을 뽑아내는 기능을 수행하고있기때문에 이걸 참조하기로 했습니다. 근데...뻥안치고 이 짧은 부분만 14시간 넘게봤는데 정말 모르겠어요 ㅠㅠ
 
그래서 의심가는거 한부분 올려봅니다 부탁드릴게요 ㅠㅠ
 
public String Detail_RecordNo=null;
 
public void Show_Dialog_BookDetail(Context context, String BookNo){   
         String strBookName = null;
         Detail_RecordNo = BookNo;
         final Dialog dialogBookDetail = new Dialog( context );
         dialogBookDetail.setContentView( R.layout.book_detailveiw );
         ImageView ImageView = (ImageView) dialogBookDetail.findViewById(R.id.ImageView01_bookdetail);
         TextView lblList = (TextView) dialogBookDetail.findViewById(R.id.TextView01_bookdetail);
         TextView lblList_No = (TextView) dialogBookDetail.findViewById(R.id.TextView05_bookdetail);
         TextView lblList_Note = (TextView) dialogBookDetail.findViewById(R.id.TextView02_bookdetail);
         Button twitter = (Button) findViewById(R.id.twbtn);
         TextView lblList_Category = (TextView) dialogBookDetail.findViewById(R.id.TextView06_bookdetail);
         EditText_Note = (EditText) dialogBookDetail.findViewById(R.id.EditText01_bookdetail);
         TextView lblList_InsertTime = (TextView) dialogBookDetail.findViewById(R.id.TextView03_bookdetail);
         CheckBox checkBox01_bookdetail = (CheckBox) dialogBookDetail.findViewById(R.id.checkBox01_bookdetail);
         CheckBox checkBox02_bookdetail = (CheckBox) dialogBookDetail.findViewById(R.id.checkBox02_bookdetail);
         
strBookName = Book_Once_Detail_View(this,"No",BookNo,ImageView,lblList,
           lblList_No,lblList_Note,twitter,EditText_Note,lblList_InsertTime,
           checkBox01_bookdetail,checkBox02_bookdetail,lblList_Category);
         dialogBookDetail.setTitle(getCutUTFString(strBookName,15,"..."));
         
         checkBox01_bookdetail.setOnCheckedChangeListener(new OnCheckedChangeListener(){
          @Override
          public void onCheckedChanged(CompoundButton buttonView, //保有check
            boolean isChecked) {
           if(isChecked){
            Database_Activity_BasicSQL.Update_Info(Database_Activity_Main_Display_02.this,Detail_RecordNo,
              "ReadInfo","1");
           }else{
            Database_Activity_BasicSQL.Update_Info(Database_Activity_Main_Display_02.this,Detail_RecordNo,
              "ReadInfo","0");
           }
          }
         });
먼저 detail_recordNo를 보시면 스트링으로 선언해줬고 안에 뭔지 모를 BookNo라는 스트링형식의 변수를 집어넣어줬습니다. Db에 No라는 필드는있어도 BookNo라는 필드는없으니까 일단 DB의 필드를 참조할 이름인 것 같지는 않은데요 일단 수상합니다.
이쪽부분소스는 디테일뷰에서 체크박스가 있고 체크하면 DB에 1들어가고 체크안되면 0이 들어가는 소스입니다.
그 많은 ReadInfo필드중에서 클릭해서 디테일뷰로 보고있는 책의 ReadInfo 레코드에만 1 또는 0이 들어가는거죠. 제가 하려고하는것과 확실히 연관이 있어보입니다. 여기서 Detail_RecordNo가 좀 많이 수상하네요. 저게 뭘 의미하는걸까요 String Detail_RecordNo = String BookNo
Detail_RecordNo 에는String형식의 BookNo라는 변수만 들어가있을뿐 BookNo에 어떤값도 들어가있지 않습니다. 참 이해가 안되네요 ...
 
두번째로 파랑색이 들어간부분있죠? 그 파란색 이름으로된 메소드를 밑에 적어보겠습니다
 
 
public String Book_Once_Detail_View(Context context, String Selection,
          String selectionArgsStr,
          ImageView ImageView,
          TextView lblList,
          TextView lblList_No,
          TextView lblList_Note,
          Button twitter,
          EditText EditText_Note,
          TextView lblList_InsertTime,
          CheckBox checkBox01_bookdetail,
          CheckBox checkBox02_bookdetail,
          TextView lblList_Category){
         String[] cols = {"No","BookName","ImagePath","Price","ISBN","Writer","AmazonPageURL","Note","InsertDateTime","ReadInfo","KeepInfo","Category"};  
         String selection = "No = ?";  
         //String selection = Selection + " = ?";  
         String[] selectionArgs = {selectionArgsStr};   
         String groupBy = null;  
         String having = null;  
         String orderBy = null;  
         Database_Class_MakeDatabase dbHelper = new Database_Class_MakeDatabase(context);  
         SQLiteDatabase db=dbHelper.getReadableDatabase(); 
         StringBuilder text = new StringBuilder();
         String strImagePath = null;
         String Book_Name = null;
         String Book_Note = null;
         //long InsertTime = 0;
         String InsertTime = null;
         String Category = null;
         int intChkInfo_01 = 0;
         int intChkInfo_02 = 0;
         try{  
          Cursor cursor = db.query("T_MyBookShelf", cols, selection, selectionArgs, groupBy, having, orderBy); 
 
 
이부분입니다.
DB에서 원하는 필드의 원하는 레코드만 출력한다
select문의 where이죠.
 
여기서 보면
SELECT cols FROM T_MyBookShelf WHERE No = selectionArgs
인데요. 제가 원하는건 그거죠 결국 where을 어떻게 내가 클릭한 책의 정보만 받느냐
여기선 string의 selectionargs를 넣었습니다.근데 콘 칙쇼
아니 selectionargs는 스트링 변수로 선언만해놓고 이 안에 어떤 값이 들어간다는 아무런 얘기도 없는데 이게 도대체 뭔소린지 모르겠습니다 아우 ㅠ.ㅠ....진짜
 
제가 보기로는 제가 하고자하는걸 찾기위한 소스는 위의 두개가 전부인 것 같은데 저 위의 두 소스에 제가 구현하고자 하는 기능을 나타내는 부분이 있긴있나요?제가 쓸대없는데서 헛물켜고있는건가요
 
마지막으로 위에적은 소스 아랫부분인데
while (cursor.moveToNext()){  
           //text.append(cursor.getInt(0));  
           text.append(cursor.getString(1));     
           text.append("\n" + getString(R.string.ISBN) + cursor.getString(4)); 
           text.append("\n" + getString(R.string.Writer) + cursor.getString(5)); 
           text.append("\n" + getString(R.string.Price) + cursor.getString(3));
           text.append("\n" + getString(R.string.Category) + cursor.getString(11)); 
           //text.append("\n");
           strImagePath = cursor.getString(2);
           Book_Name = cursor.getString(1);
           Book_Note = cursor.getString(7);
           //InsertTime = cursor.getLong(8);
           InsertTime = cursor.getString(8);
           StringBuffer InsertDate = new StringBuffer(InsertTime);
        InsertDate.insert(4, "/");
        InsertDate.insert(7, "/");
        text.append("\n" + getString(R.string.Date) + InsertDate);
           intChkInfo_01 = cursor.getInt(9);
           intChkInfo_02 = cursor.getInt(10);
           Category = cursor.getString(11);
          }  
         }finally{  
          db.close();  
         }  
         Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/barcodes/" + strImagePath);
         //Bitmap bitmap_resize = Bitmap.createScaledBitmap(bitmap, 160, 200, true);
         //ImageView.setImageBitmap(bitmap_resize);
         ImageView.setImageBitmap(bitmap);
         ImageView.setScaleType(ScaleType.FIT_CENTER);
         lblList.setText(text); 
         lblList_Note.setText(getString(R.string.Memo));
         lblList_Category.setText(Category);
         
         EditText_Note.setText(Book_Note); 
         ImageView.setScaleType(ScaleType.FIT_CENTER);
         //lblList_InsertTime.setText("登録日:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(InsertTime));
         if(intChkInfo_01 != 0){checkBox01_bookdetail.setChecked(true);}
         else{checkBox01_bookdetail.setChecked(false);}
         if(intChkInfo_02 != 0){checkBox02_bookdetail.setChecked(true);}
         else{checkBox02_bookdetail.setChecked(false);}
         return Book_Name;
  
        }
       빨간 줄 처진 lblList에 text가 들어가잖아요
저lblList에 들어간 text값을 다른 엑티비티에서 그대로 참조할 수 있을까요?
그게 가능하면 짜증나게 twitter 엑티비티에서 db 셀렉트하는거 구현안하고 저거 값 받아서 트위터로 보내면 Ok인데...근데 생각은 해서 lblList 막 전역변수로 줘서 위에서 호출해보고 하면 안에 값은 안들어있고 ; 다르게하면 에러나고 생각처럼 안되더라구요...계획상으로는 이 방법이 가장 이상적인데...
 
제발도와주세요