2013-04-05 14 views
5

In meiner Anwendung verwende ich einen Auto-Complete-Text. Wenn der Benutzer t es zeigt Drei, Zwei, fünfzig aber ich will Zwei, Drei nicht fünfzig zeigen. Kann mir jemand helfen, dieses Problem zu lösen?Autocomplete Text in Android?

String search[] = {"one","two","three","four","five","six","seven","fifty"};  

ArrayAdapter<String> adp= new ArrayAdapter<String>(this,R.layout.searchtext, search); 
    search_item.setThreshold(1); 
    search_item.setAdapter(adp); 
+0

Sie ideal die Schwelle 2-3 nicht 1 gesetzt Schuss, wird dies dazu führen, zu viel zu zeigen, und eine Menge an Verarbeitungszeit verschwenden. – JoxTraex

+1

Sie müssen Ihren benutzerdefinierten Adpter mit Filter – Pragnani

+0

@Pragnani wie benutzerdefinierte Adapter mit Filter verwenden. – Yugesh

Antwort

3

Ich glaube nicht, dass Sie benutzerdefinierte Adapter erstellen müssen. seine Standardfunktionalität, die Sie wollen. check this

hier ich habe Array wie:

private static final String[] COUNTRIES = new String[] { "Belgium", 
     "France", "France_", "Italy", "Germany", "Spain","abcf","FFa","FFb","bFF","aFF" }; 

wenn i ff suchen seine dann geben Sie mir nur 2("FFa","FFb") Vorschlag nicht 4("FFa","FFb","bFF","aFF")

enter image description here

ich dies in ActionBar verwendet haben. Sie können dies auch im Layout verwenden. weil sein benutzerdefiniertes Layout in ActionBar.

public class TestActivity extends Activity { 

    /** Called when the activity is first created. */ 
    private static final String[] COUNTRIES = new String[] { "Belgium", 
     "France", "France_", "Italy", "Germany", "Spain","abcf","FFa","FFb","bFF","aFF" }; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_main); 

     ActionBar actionBar = getActionBar(); 
     actionBar.setDisplayHomeAsUpEnabled(true); 
     actionBar.setDisplayShowCustomEnabled(true); 
     // actionBar.setDisplayShowTitleEnabled(false); 
     // actionBar.setIcon(R.drawable.ic_action_search); 

     LayoutInflater inflator = (LayoutInflater) this 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View v = inflator.inflate(R.layout.test, null); 

     actionBar.setCustomView(v); 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_dropdown_item_1line, COUNTRIES); 
     AutoCompleteTextView textView = (AutoCompleteTextView) v 
       .findViewById(R.id.editText1); 
     textView.setAdapter(adapter); 

    } 
} 

test.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Action Bar:" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:textColor="#FFFFFF" /> 

    <AutoCompleteTextView 
     android:id="@+id/editText1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:imeOptions="actionSearch" 
     android:inputType="textAutoComplete|textAutoCorrect" 
     android:textColor="#FFFFFF" > 

     <requestFocus /> 
    </AutoCompleteTextView> 

</LinearLayout>