2013-07-31 17 views
1

Я хочу, чтобы ввести текст, когда я выбираю вариант «Другое»Как редактировать текст при выборе опции?

Spinner spn; 
........ 
adapterString = new String[] 
{ 
    "A", 
    "B", 
    "Other" 
}; 
ArrayAdapter<String> adptLubricatorType = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, adapterString); 
spn.setAdapter(adptLubricatorType); 
spn.setOnItemSelectedListener(listenerspn); 
private Spinner.OnItemSelectedListener listenerspn = new Spinner.OnItemSelectedListener() { 

    @Override 
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, 
      long arg3) { 


    } 

Как я могу вставить текст, когда я спустить блесну и выберите «Другое»?

Я надеюсь, что я могу ввести как EditText и когда я нажимаю другие вещи, «Other» изменится на строку, я только вход

ответ

0

Всегда используйте параметр EditText, но установите его видимость INVISIBLE в XML-файле. Затем, когда вы обнаружите, что выбранный элемент равен "Other", установите VISIBILITY в VISIBLE. Что-то вроде

@Override 
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, 
     long arg3) { 
    //get the item selected item. Compare to the itme for which you want to make the EditText visible 
    if(spn.getSelectedItem().toString().equals("Other"){ 
     yourEditText.setVisibility(View.VISIBLE); 
    } 

}  

После этого вы можете обработать EditText как обычно, имея onClickListener и т.д. Надеюсь, что вы получите понятие еще, пожалуйста, комментарий.

1

Может создать диалоговое окно предупреждения и добавить редактирования текста в том, что:

final AlertDialog.Builder alert = new AlertDialog.Builder(this); 
final EditText input = new EditText(this); 
alert.setView(input); 
0

Использование setVisibility() для переключения видимости edittext.Here является рабочий фрагмент кода,

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    other = (EditText)findViewById(R.id.other); 
    other.setVisibility(View.GONE); 
    Spinner spn = (Spinner)findViewById(R.id.spinner1); 
    String[] adapterString = new String[] 
    { 
     "A", 
     "B", 
     "Other" 
    }; 
    ArrayAdapter<String> adptLubricatorType = new ArrayAdapter<String>(this, 
    android.R.layout.simple_spinner_item, adapterString); 
    spn.setAdapter(adptLubricatorType); 

    Spinner.OnItemSelectedListener listenerspn = new Spinner.OnItemSelectedListener() { 

}

Макет файла:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent> 


    <Spinner 
     android:id="@+id/spinner1" 
     android:layout_width="0dp" 
     android:layout_weight="2" 
     android:layout_height="wrap_content" /> 

    <EditText 
     android:id="@+id/other" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     android:layout_height="wrap_content"/> 


</LinearLayout> 
Смежные вопросы