0

I am trying to show an EditText when a certain Item from a Spinner is selected. 到目前为止,我已经创建了微调器和 EditText,但我真的不知道下一步是什么。我不想在 EditText 中显示选择,我只想显示 EditText 字段。

 @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());

}

这也是我的字符串数组中的内容+希望仅在选择 item2 时显示编辑文本框

<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>
4

6 回答 6

2

您应该editText在 XML 中将可见性设置为不可见或消失,这取决于更适合您的需求。然后您可以使用以下方法使其显示:

public void onItemSelected(AdapterView<?> spinner1, View view, int pos, long id)
{
    yourEditText.setVisibility(View.VISIBLE);
}
于 2012-09-07T11:28:40.817 回答
2
    spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {

        public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            int x = spinner1.getSelectedItemPosition();
            valSel = items[x];
    }
String spinner1val = spin1.getText().toString();         //extract value of text from spinner

EditText text = (EditText) findViewById(R.id.EditText1);  //get id of EditText box
text.setText(spinner1val);

或者,如果您想检查在 Spinner 中选择的项目的值,“valsel”包含该值。干杯瓦塞尔。

于 2012-09-07T11:47:30.237 回答
0

您必须在 edittext 上设置文本onItemSelected。首先按照MKJParekh Suggest 进行更改。

public void onItemSelected(AdapterView<?> spinner1, View view,int pos, long id)
{
   yourEditText.setText(spinner1.getSelectedItem())
}
于 2012-09-07T11:25:33.187 回答
0

从微调器中获取选定的值,

String anyvariable=String.valueOf(spin.getSelectedItem());

现在您可以在编辑文本中显示此字符串值,

EditText text = (EditText) findViewById(R.id.your_text);
text.setText(anyvariable);
于 2012-09-07T11:28:08.880 回答
0
        @Override
        public void onItemSelected(AdapterView<?> month, View arg1,int arg2, long arg3) {
            // TODO Auto-generated method stub
            selectedMonth=  month.getItemAtPosition(arg2).toString();
            Log.d("Tag",""+selectedMonth);
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub
            //selected_item=    arg0.getChildAt(1).toString();

        }
        });

        selected_item contains the item ,so just set it to editView like
         editView.setText(selected_item)    
于 2012-09-07T11:33:16.660 回答
0
  1. EditText height1,weight1,身高,体重;微调器 height_spinner, weight_spinner; 字符串高度输入字符串,重量输入字符串;按钮计算bmi;

    @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_bmi);

    // set your class members as they start out null.
    // do this for all of them 
    height1 = (EditText) findViewById(R.id.idofheight1inxml);
    height_spinner = (Spinner) findViewById(R.id.idofheightspinnerinxml); 
    ....
    
        // Show the Up button in the action bar.
    setupActionBar();
    setupSpinners(); }
    

    void setupSpinner(){ height_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { //IE 如果在高度微调器 CM 被选中 我想隐藏第二个高度编辑文本字段。 // 我不确定这是“height1”还是“height” if (position == 0){ height.setVisibility(View.GONE); } else { height.setVisibility (View.VISIBLE); } }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {
    
        }
    });
    
    // if you want to add similar logic for weight spinner, do that with this : 
    weight_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            // put your code here for weight spinner
        }
    
        @Override
        public void onNothingSelected(AdapterView<?> parent) {
    
        }
    }); }
    
于 2013-11-26T05:43:02.037 回答