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

Android 选择选项时如何编辑文本?,android,android-spinner,Android,Android Spinner,我想在选择“其他”选项时输入文本 Spinner-spn; ........ adapterString=新字符串[] { “A”, “B”, “其他” }; ArrayAdapter adptLubricatorType=新的ArrayAdapter(此, android.R.layout.simple\u微调器\u项,适配器字符串); spn.setAdapter(AdptLubricateType); setOnItemSelectedListener(listenerspn); priv

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

Spinner-spn;
........
adapterString=新字符串[]
{
“A”,
“B”,
“其他”
};
ArrayAdapter adptLubricatorType=新的ArrayAdapter(此,
android.R.layout.simple\u微调器\u项,适配器字符串);
spn.setAdapter(AdptLubricateType);
setOnItemSelectedListener(listenerspn);
private Spinner.OnItemSelectedListener listenerspn=新建Spinner.OnItemSelectedListener(){
@凌驾
已选择公共视图(适配器视图arg0、视图arg1、内部arg2、,
长arg3){
}
当我拉下微调器并选择“其他”时,如何插入文本

我希望我能像edittext一样输入,当我点击其他东西时,“其他”会改变
对于我刚刚输入的字符串

,可能会创建一个警报对话框并向其中添加编辑文本:

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

可能会创建一个警报对话框并向其中添加编辑文本:

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

始终使用
编辑文本
,但在XML文件中将其可见性设置为
不可见

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

}       
@覆盖
已选择公共视图(适配器视图arg0、视图arg1、内部arg2、,
长arg3){
//获取所选项目。与要使编辑文本可见的itme进行比较
如果(spn.getSelectedItem().toString().equals)(“其他”){
yourEditText.setVisibility(View.VISIBLE);
}
}       
然后,您可以通过使用
onClickListener
等,像往常一样处理
EditText

希望您能理解这个概念,请发表评论。

始终使用
编辑文本
,但在XML文件中将其可见性设置为
不可见
。然后,当您检测到所选项目是
“其他”
,将可见性设置为
可见
。类似于

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

}       
@覆盖
已选择公共视图(适配器视图arg0、视图arg1、内部arg2、,
长arg3){
//获取所选项目。与要使编辑文本可见的itme进行比较
如果(spn.getSelectedItem().toString().equals)(“其他”){
yourEditText.setVisibility(View.VISIBLE);
}
}       
然后,您可以通过使用
onClickListener
等,像往常一样处理
EditText
。 希望您能理解这个概念,请发表评论。

使用
setVisibility()
切换编辑文本的可见性。以下是工作代码片段

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() {
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
其他=(EditText)findViewById(R.id.other);
其他.setVisibility(View.GONE);
微调器spn=(微调器)findViewById(R.id.spinner1);
字符串[]适配器字符串=新字符串[]
{
“A”,
“B”,
“其他”
};
ArrayAdapter adptLubricatorType=新的ArrayAdapter(此,
android.R.layout.simple\u微调器\u项,适配器字符串);
spn.setAdapter(AdptLubricateType);
Spinner.OnItemSelectedListener listenerspn=新建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>
使用
setVisibility()
切换编辑文本的可见性。以下是工作代码段

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() {
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
其他=(EditText)findViewById(R.id.other);
其他.setVisibility(View.GONE);
微调器spn=(微调器)findViewById(R.id.spinner1);
字符串[]适配器字符串=新字符串[]
{
“A”,
“B”,
“其他”
};
ArrayAdapter adptLubricatorType=新的ArrayAdapter(此,
android.R.layout.simple\u微调器\u项,适配器字符串);
spn.setAdapter(AdptLubricateType);
Spinner.OnItemSelectedListener listenerspn=新建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>