일종의 사전 같은 어플을 개발중입니다.

 

제목대로 입력받은 값, 그러니까 listView의 목록 중 일부 단어만 받으면

 

우리가 인터넷에서 ctrl + f 를 사용해서 쓰는 것처럼 focus를 맞춰가면서

 

editText 옆의 버튼을 누를때마다 그 다음 검색결과로 넘어가게끔 코드를 짜고 싶습니다.

 

안드로이드를 수박 겉핥기라고 하기도 부끄러울 만큼 살짝 배운지도 일주일정도밖에 안되고

 

자바 기초지식도 매우 저조한지라 며칠간 찾아헤메다가 질문 드립니다.

 

(스샷을 찍어뒀는데 사진을 붙이는 방법을 모르겠네요..ㅠㅠ)

 

┌───────────────┐┌─┐

└───────────────┘└─┘

    리스트 목록1

   ──────────────────

    리스트 목록2

   ──────────────────

    리스트 목록3

 

 

 

이런 식으로 생긴 뷰 입니다. 위의 긴 네모가 editText고 옆의 버튼이 클릭되면 focus를 맞추게 이벤트를 줄 계획입니다.

 

일단 제가 짜 본 코드는 이런 정도입니다.

 

 

   String[] odorant = new String[] { "hydroxycalamenene","tetradecanol","heneicosane","phytol","5-oxymethylfurfurole","lauric acid","docosane","6-Methoxyeugenol","stearyl alcohol","methyl vanillate","ethyl vanillate","acetovanillone","3-oxo-α-ionol","tricosane" };
 EditText editText1;
 Button button1;
 Message msg;
 
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.m_list);
  button1 = (Button) findViewById(R.id.button1);
  editText1 = (EditText) findViewById(R.id.editText1);
  
  final ListView list = (ListView) findViewById(R.id.list);
  ArrayAdapter<String> adapter;
   adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, odorant);
  
  list.setAdapter(adapter);
  
  list.setOnItemClickListener(this);
  
  button1.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View v) {
    
    String text = editText1.getText().toString();
 
    list.setSelection(10);
      for(int i = 0; i < odorant.length; i++) {
       
       if (odorant[i].indexOf(text) != -1){
   
       }
      }
   }
  });

생각하기로는 위에 썼던대로 editText의 입력된 값을 일부만, 그러니까

 

hydroxycalamenene  이라는 단어를 찾고 싶으면 중간의 drox만 써도 focus를 맞춰 화면이 그리로 이동하게,

 

그리고 버튼을 클릭할 경우 그 다음 찾은 값으로 이동하면서 되도록이면 알아보기 쉽게 효과도 주면 좋겠는데요.

 

일부만 이라는 생각에 indexof를 사용해 봤습니다만... 영 반응이 없어서 맞는건지 틀린건지도 잘 모르겠네요;;

 

값을 받아와서, 배열 내에서 그 값을 검색해서  값이 들어 있는 목록의 position을 받아 그것으로 포커스를 맞추게 하면 될 듯 한데요.

 

늘상 생각으로 이리이리 하면 되겠다 싶은데.. 막상 기초가 없다보니 코드로 작성할때 머리가 백지가 되는것 같습니다..

 

도와주세요~

 

 

공지사항을 다 읽었음 (검색도 해서 이건가 싶은건 다 읽었습니다.)