选择选项时如何编辑文本?

时间:2013-07-31 04:14:23

标签: android android-spinner

我想在选择“其他”选项时输入文字

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一样输入,当我点击其他内容时,“其他”会改变 到我刚刚输入的字符串

3 个答案:

答案 0 :(得分:1)

也许创建一个警告对话框并添加编辑文本:

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

答案 1 :(得分:0)

始终拥有EditText,但在XML文件中将其可见性设置为INVISIBLE。然后,当您检测到所选项目为"Other"时,请将可见性设置为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等。 希望你得到其他概念,请评论。

答案 2 :(得分:0)

使用setVisibility()切换edittext的可见性。这是工作代码段,

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>