1)通过延长微调创建一个自定义微调类,
public class CCSpinner extends Spinner {
public CCSpinner(Context context) {
super(context);
}
public CCSpinner(Context context, int mode) {
super(context, mode);
}
public CCSpinner(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CCSpinner(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public CCSpinner(Context context, AttributeSet attrs, int defStyleAttr, int mode) {
super(context, attrs, defStyleAttr, mode);
}
@Override
public void onDetachedFromWindow() {
super.onDetachedFromWindow();
}
}
使用上述微调您的XML视图。
2)定义的接口处理点击,
public interface ClickListener {
void onItemLongClicked(View view);
void onItemClicked(View view);
}
3)在您的微调适配器类做getView和getDropDownView
这些东西
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//ususal stuffs
convertView.setTag(R.string.click_tag, position);
convertView.setClickable(false);
convertView.setLongClickable(false);
return convertView;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
//ususal stuffs
convertView.setTag(R.string.click_tag, position);
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (clickListener != null) {
clickListener.onItemClicked(v);
}
}
});
convertView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if (clickListener != null) {
clickListener.onItemLongClicked(v);
}
return true;
}
});
return convertView;
}
4)在实例化适配器,通过我们创建的ClcikListener接口。
5),并在实现类做到以下几点,
@Override
public void onItemLongClicked(final View view) {
mPSpinner.onDetachedFromWindow();
final int pos = (int) view.getTag(R.string.click);
mPSpinner.setSelection(pos);
}
@Override
public void onItemClicked(final View view) {
mPSpinner.onDetachedFromWindow();
int pos = (int) view.getTag(R.string.click);
mPSpinner.setSelection(pos);
}
尝试交叉检查你的“微调ID” /如果你有嵌套视图,则对布局禁用重点对微调 – 2014-10-26 21:39:53
得到事件我有一个显示字符串数组的Spinner(没有自定义的Spinner实现),我不明白你的意思。你能给我更多的细节吗? – AndreaF 2014-10-26 21:42:59
你可以请你添加你的代码调试..我们不能帮你,直到我们可以看到你的执行... – 2014-10-26 21:52:49