需要一个可以手动输入 也可以选择的下拉框,我的思路是这样:用了一个Button,当点击Button后,用代码显示spinner选项,
然后在spinner的onItemSelectedListener中将选中的值赋给EditText。 结果onItemSelectedListener不起作用了,也不报错。主要代码如下:
//spinner的代码
sp_usim_list.setOnItemSelectedListener(new OnItemSelectedListener() { public void onItemSelected(AdapterView<?> adapterView, View view,
int position, long l) {
//这里随便写什么都没反应
et_usim_no.setText("mm"+usimInfoList.get(position).getUsimNo());
} public void onNothingSelected(AdapterView<?> arg0) {
}
});
//按钮的代码
b_sys_usim.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
sp_usim_list.performClick();//显示Spinner的选项
}
});
然后在spinner的onItemSelectedListener中将选中的值赋给EditText。 结果onItemSelectedListener不起作用了,也不报错。主要代码如下:
//spinner的代码
sp_usim_list.setOnItemSelectedListener(new OnItemSelectedListener() { public void onItemSelected(AdapterView<?> adapterView, View view,
int position, long l) {
//这里随便写什么都没反应
et_usim_no.setText("mm"+usimInfoList.get(position).getUsimNo());
} public void onNothingSelected(AdapterView<?> arg0) {
}
});
//按钮的代码
b_sys_usim.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
sp_usim_list.performClick();//显示Spinner的选项
}
});
解决方案 »
- 求解答 程序启动了两次
- android怎样实现分割线
- 求教 如何在手机实体机中操作DDMS
- android任务管理器的问题
- 有把Android 2.2 Launcher2移植到Android2.1上的成功经验吗?
- android手机之间通过GPRS传数据的可行性?
- finishActivity()方法有什么用处?用法。用在什么情况下呢?
- 在Android上要实现播放音频到指定的网络设备
- 求解GridView与ImageView结合滑动时图片显示混乱的解决方法
- fragment与fragment传值的问题,求大神帮忙看看,问题出在哪
- andorid如何使用代码打开资源管理器选择文件?
- TabHost如何让tabWidget里的页签在屏幕左边垂直显示
spinner有个事件是selectItemListener,你可以通过这个
public void onItemSelected(AdapterView<?> adapterView, View view,
int position, long l)
根据选定的postion得到item的值,我记得有个方法是这样的哈
string temp=sp_usim_list.getSelectedItem().toString();
或者是
string temp=sp_usim_list.getItemAtPosition(position).toString();
就可以得到选中项的值了,再赋值给EditText就简单了,我就不废话了
希望可以帮到你
查看api可知:spinner.performClick()方法是调用spinner的onclickListenner事件,而并非是itemSelectedListener,当然就不起作用了boolean android.widget.Spinner.performClick()
Call this view's OnClickListener, if it is defined.
Overrides: performClick() in View
Returns:
True there was an assigned OnClickListener that was called, false otherwise is returned.
遇到这种情况,你应该打断点跟踪调试哈,缩小范围。
还有如果可以用简单的方法去实现,为什么要把代码写那么复杂呢。直接调用不就完了么,直到现在也没搞懂你为啥子要用个button,还要弄个onclick出来。
b_sys_usim.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
final CharSequence[] items = {"1","2","3"};
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
et_usim_no.setText(items[item]);
dialog.cancel();
}
});
builder.create().show();
}
});