마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

최근 검색어 구현 및 다른 액티비티에서 메인 액티비티 어댑터 사용하기

0 추천

첫번째 질문은,

검색창에 "감사합니다" 입력

첫번째 String이 들어가지 않음

"안녕하세요" 입력

"안녕하세요" null 값 밑으로 들어가게됨

"고맙습니다" 입력했을 경우 "안녕하세요" 밑에 들어가게 됨

그림과 같이, 처음에 어떤값을 입력하더라도 저렇게 null 형태로 들어가고 그 다음 값들부터 null 밑으로 들어가고 있습니다.

가장 최근에 검색한 단어가 출력되기는 하지만 저 null 값을 출력하지 않게 해야하는데.. 그방법을 계속 연구해보았지만.. 도저히 제실력으론..ㅠ 

그래서 이렇게 질문을 드리게 되었습니다.

현재 mainactivity 에선 버튼을 누르면 이렇게 메소드를 호출하면서 해당 단어를 저장 시키게 만들어 놓았습니다.

---------------------------------------------------------------------

저 위 3가지 메소드는 CustomAdapter에 구현해놓은 메소드 입니다. MainActivity에서 어댑터 선언 후 호출해서 사용합니다.

         l_ListView.setAdapter(l_Adapter);                                                                         //리스트 뷰 보여주기

 

마지막으로 MainActivity에서는 이런식으로 내부메모리에 저장되어있는 내용을 리스트 뷰에 삽입시키고 보여주겠금 작성했습니다..

왜 null 값이 계속 들어가게 되는걸까요?

 

 

리본맨 (300 포인트) 님이 2016년 5월 18일 질문

1개의 답변

0 추천

음 ㅜㅜ 저는 SQLite를 이용해서 디비를 거기다가 저장을한후에 불러왔거든요 

제 소스코드를 보내주고싶네요ㅠㅠ 

btn_search.setOnClickListener(new OnClickListener() {

   @Override
   public void onClick(View v) {
      String search_text = autoct.getText().toString();
   /* Calendar calendar = Calendar.getInstance();
      int year = calendar.get(Calendar.YEAR);
      int month = calendar.get(Calendar.MONTH) + 1;
      int date = calendar.get(Calendar.DATE);

      String currentdate = year + "." + month + "." + date;*/
      if (search_text != null) {
         try {
            dbHandler.insert(search_text, currentdate);
         } catch (Exception e) {
            e.printStackTrace();
         }
         Fragment fm_main = new Frag_Search_main();

         FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
         String auto = autoct.getText().toString();
         Bundle bundle = new Bundle();
         bundle.putString("text", auto);
         fm_main.setArguments(bundle);

      }
   }
}); //버튼눌렀을 때 db로 보내는 부분입니다.
public ArrayList<RecentData> getList() {

   dbHandler = DBHandler.open(getActivity());

   cursor = dbHandler.selectAll();
   Log.i("TEST", "cursor + " + cursor);
   arr = new String[cursor.getCount()];
   int count = 0;
   if (cursor.getCount() > 0) {

      while (cursor.moveToNext()) {
         String code = cursor.getString(0);
         String result = cursor.getString(1);
         String date = cursor.getString(2);
         arr[count] = code + " " + result;
         mRecentData.add(new RecentData(code, result, date));
         count++;
      }
   }
   cursor.close();
   return mRecentData;
} //디비에서 데이터를 가져오는 부분이구요 리스트뷰에 어댑터를 이용해서 넣어줬습니다. 
꿀떡 (2,700 포인트) 님이 2016년 5월 18일 답변
...