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