in an android website, I found an article about how to create a text entry widget that provides auto-complete suggestions. (Following is the link to the site; and it shows all the codes).
http://developer.android.com/resources/tutorials/views/hello-autocomplete.html
Can anyone please tell me how I can capture the input entered by the user? For example, if the user chooses “Canada”, is there a way I can know the result in the “HelloAutoComplete.java” activity? Any help would be greatly appreciated.
public class HelloAutoComplete extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);
String[] countries = getResources().getStringArray(R.array.countries_array);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, countries);
textView.setAdapter(adapter);
textView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
if (adapterView.getItemAtPosition(i).toString().equals("Canada")) {
Toast.makeText(getApplicationContext(), "Result Canada", Toast.LENGTH_SHORT).show();
} //Does not get an out put when I select Canada.
}
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
} }
Currently your code does not hook up the listener to the text view.
You need to either (a) use an immediate listener:
Or (b) if you want to use the activity as the listener (I wouldn’t) have it implement the interface and set the
itemSelectedListenerto this. But yuck.To set the selected text into another text element, a few changes must be made. First, the layout must now include the autocomplete “component”, and the additional text view. We set the “parent” layout to vertical orientation, create a new horizontal layout for the autoselect stuff, and add a new text view.
The activity gets a new
TextViewinstance property, which I’m callingselectedCountry. I’m not showing its declaration. TheonCreatemethod looks it up by ID, and the select listener just updates it.