Search code examples
androidandroid-edittextandroid-spinner

Select item from spinner to show edittext


I am trying to show an EditText when a certain Item from a Spinner is selected. So far I have created the spinner and the EditText but I don't really know what my next step is. I don't want to display the selection in the EditText, I just want to display the EditText field.

 @Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final EditText editText = (EditText) findViewById(R.id.edit_text_box);
    editText.getText().toString();




}


public void addItemsOnSpinner()
{
    spinner1 = (Spinner) findViewById(R.id.spinner);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource
    (this, R.array.spinner_item, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner1.setAdapter (adapter);

}

public void onItemSelected(AdapterView<?> spinner1, View view,int pos, long id)
{

        editText.setText(spinner1.getSelectedItem());

}

This is also what I have in my string array + wish to only display the edittext box when item2 is selected

<string-array name="spinner_item">
    <item>Item 1</item>
    <item value="Item2">Item 2</item>
    <item>Item 3</item>
    <item>Item 4</item>
</string-array>

Solution

  • You should set visibility of editText to invisible or gone in XML, depends on what suits your needs better. Then you can use following to make it appear:

    public void onItemSelected(AdapterView<?> spinner1, View view, int pos, long id)
    {
        yourEditText.setVisibility(View.VISIBLE);
    }