2014-02-12 11 views
1

목록보기에서 edittext를 사용하여 검색 막대에 문제가 있습니다. 내가 데이터를 입력 할 때 인덱스는 데이터 자체가 아니라 던져진 것입니다. 무엇이 문제 일 수 있습니다. 여기 내 코드 :목록보기에서 편집 텍스트 편집

package com.apps.mangkepwengslab; 

import java.util.ArrayList; 
import java.util.HashMap; 

import android.app.Activity; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.text.Editable; 
import android.text.TextWatcher; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.EditText; 
import android.widget.ListView; 
import android.widget.AdapterView.OnItemClickListener; 

public class SearchListActivity extends Activity { 

// List view 
private ListView lv; 

// Listview Adapter 
ArrayAdapter<String> adapter; 
// Object obj; 
// Search EditText 
EditText inputSearch; 


// ArrayList for Listview 
ArrayList<HashMap<String, String>> productList; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.search_list); 
    onSearchRequested(); 
    // Listview Data 
    String[] commonName = 
      { 
      "Acacia", 
      "Alfalfa", 
      "Althea", 
      "Anise", 
      "Annatto", 
      "Antidysenteric Holarrhena", 
      "Arjuna Myrobalan", 
      "Artichoke", 
      "Asparagus", 
      "Avocado", 
      "Bael Tree", 
      "Balloon Vine", 
      "Bamboo", 
      "Banana", 
      "Basil", 
      "Bauhinia", 
      "Beetroot", 
      "Bengal Currants", 
      "Betel Nut Palm", 
      "Bilimbi", 
      "Bitter Gourd", 
      "Black Mulberry", 
      "Black Oil Plant", 
      "Black Pepper", 
      "Brazil Wood", 
      "Bread Fruit", 
      "Broad Bean", 
      "Broccoli", 
      "Butter Tree", 
      "Cabbage", 
      "Cacao", 
      "Cactus", 
      "Camphor", 
      "Carambola", 
      "Carrot", 
      "Cashew", 
      "Castor Bean", 
      "Catechu Tree", 
      "Celery", 
      "Century Plant", 
      "Chives", 
      "Cinnamon", 
      "Clitoria", 
      "Clove Tree", 
      "Cluster Fig", 
      "Coconut", 
      "Coffee", 
      "Coriander", 
      "Corn", 
      "Cotton", 
      "Country Borage", 
      "Cowhage", 
      "Creat", 
      "Crown Plant", 
      "Cucumber", 
      "Curry Leaf", 
      "Custard Apple", 
      "Cypress", 
      "Deadly Nightshade", 
      "Dodder", 
      "Dwarf Nasturtium", 
      "Eggplant", 
      "Elephant Creeper", 
      "Emblic Myrobalan", 
      "Eucalyptus", 

      "Flame of the Forest", 
      "Four Angled Bean", 
      "Four OClock Plant", 
      "French Beans", 
      "Garlic", 
      "Ginger", 
      "Golden Trumpet", 
      "Grape Fruit", 
      "Guava", 
      "Hibiscus", 
      "Hierba Buena", 
      "Horse Radish Tree", 
      "Hyacinth Bean", 
      "Indian Aloe", 
      "Indian Privet", 
      "Indian Spinach", 
      "Ivy Gourd", 
      "Jack Tree", 
      "Jasmine", 
      "Java Plum", 
      "Jicama", 
      "Kohlrabi", 
      "Lantana", 
      "Lemon Grass", 
      "Lentil", 
      "Mandarin Orange", 
      "Marigold", 
      }; 

    lv = (ListView) findViewById(R.id.list_view); 
    inputSearch = (EditText) findViewById(R.id.inputSearch); 

    // Adding items to listview 
    adapter = new ArrayAdapter<String>(this, R.layout.list_items, R.id.product_name, commonName); 

    lv.setAdapter(adapter); 
    lv.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id)    { 
      id = id + 1 ; 
      System.out.println("Text ["+id+"]"); 
      long new_id = lv.getItemIdAtPosition(position); 
      Intent herbIntent = new Intent(getApplicationContext(), HerbActivity.class); 
//    Object obj = adapter.getItem(position); 
      // Creating a uri to fetch country details corresponding to selected listview item 
      Uri data = Uri.withAppendedPath(HerbContentProvider.CONTENT_URI, String.valueOf(id)); 

      // Setting uri to the data on the intent 
      herbIntent.setData(data); 
    //    countryIntent.setDataAndType(data, "image/jpeg"); 
      // Open the activity 
      startActivity(herbIntent); 
     } 
    }); 
    /** 
    * Enabling Search Filter 
    * */ 
    inputSearch.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) { 
      // When user changed the Text 

      SearchListActivity.this.adapter.getFilter().filter(cs); 
//    adapter.notifyDataSetChanged(); 
     } 

     @Override 
     public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, 
       int arg3) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void afterTextChanged(Editable arg0) { 
      // TODO Auto-generated method stub 

       adapter.notifyDataSetChanged(); 
     } 
    }); 

}  
} 

나는 누군가가 나를 도울 수 있기를 바랍니다. 감사합니다 :)

+0

질문은 명확하지 않습니다, 형제는 어떻게됩니까? – Triode

+0

Rajesh CP. 제가 검색을 할 때 얻을 수있는 대상이 아니라 색인입니다. 예를 들어 바나나를 검색합니다. 그리고 나는 그것을 클릭했다. 바나나에 대한 정보를 표시하는 대신 아카시아에 대한 정보를 표시합니다. 첫 번째 색인에 포함되어 있기 때문입니다. – emjae11

답변

0

그것 때문에 될 수있는 아이디 바나나의 위치가 0이됩니다 필터 후 response..As로 받고 .. 그래서 그 대신 및 ID 사용보기를 복용하는 것은

세 일품에서 텍스트를 평가 해보십시오 ..