2013-10-06 4 views
1

Я новичок в андроиде. Я пытаюсь создать тост, когда элемент из автокомплектаTextView выбран пользователем. Я читаю значение из strings.xml, который работает нормально, но я смущен, как мне (что даже обработчик) мне нужно для создания тоста. ниже мой код 1- activity.xmlКак создать Toast из AutoCompleteTextView выбранного элемента?

<AutoCompleteTextView android:id="@+id/myautocomplete" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_marginTop="110dp" 
/> 

strings.xml 
<string-array name="termsarray"> 
<item>emulator</item> 
<item>ant</item> 
<item>string.xml</item> 
    <item>activity</item> 
    <item>workspace</item> 
    <item>adt</item> 
    <item>manifest.xml</item> 
    <item>package</item> 
    <item>layout</item> 
    <item>toast</item> 
    <item>adb</item> 
</string-array> 
//activity.java 
public class TermActivity extends Activity { 

String[] categories; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    categories=getResources().getStringArray(R.array.termsarray); 
    setContentView(R.layout.activity_term); 

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(
      this, 
      android.R.layout.simple_dropdown_item_1line, categories); 
    AutoCompleteTextView textView = 
      (AutoCompleteTextView) findViewById(R.id.myautocomplete); 
    textView.setThreshold(3); 
    textView.setAdapter(adapter); 

} 

ответ

8

Handle, что на слушателя. Попробуйте это:

textView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       Toast.makeText(context, "Position clicked: " + position, Toast.LENGTH_SHORT).show(); 
     } 
}); 
+0

Спасибо за ответ, но им получить следующее сообщение об ошибке в контексте «контекст не может быть разрешен к переменной» я изменил getBaseContext(), но это только дает мне первый индексную позицию каждый раз. – ilatif28

+0

Вы можете либо создать глобальную переменную, которая содержит контекст, и назначить его в начале метода onCreate, либо просто использовать вместо этого слово «this» (если оно находится в методе onCreate). Для позиции попробуйте поменять ее на id. –

+0

полная версия размещена ниже – ilatif28

1
textView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
public void onItemClick(AdapterView<?> parent, View view, int position,long id) { 
      if(textView.getText().toString().equals("string.xml")) 
       { 
        Toast.makeText(TermActivity.this, "A string resource provides text strings for your application with optional text styling and formatting", Toast.LENGTH_LONG).show(); 
       //other logic 
       } 
     } 
    }); 
2
textView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position,long id) { 
     String str = (String) parent.getItemAtPosition(position); 
     Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show(); 
     } 
}); 
Смежные вопросы