我有一个微调器,我想长按一下列表中的项目,但OnItemLongClick不起作用......
有人知道在旋转器项上设置长按的新方法吗?
谢谢
答案 0 :(得分:0)
根据android文档,无法对spinner项执行itemlong单击。这是Link
因此,如果您希望通过项目长按实现微调器,则必须创建自定义适配器并设置长按视图。
public class TestSpinnerAdapter extends BaseAdapter {
private String[] mArray;
public TestSpinnerAdapter(String[] array) {
mArray = array;
}
@Override
public int getCount() {
return mArray.length;
}
@Override
public Object getItem(int position) {
return mArray[position];
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, final ViewGroup parent) {
LayoutInflater layoutInflater =LayoutInflater.from(parent.getContext());
convertView = layoutInflater.inflate(R.layout.adapter_spinner_item,parent,false);
((TextView)convertView.findViewById(R.id.tv_name)).setText(mArray[position]);
convertView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Toast.makeText(parent.getContext(),"On Long Click",Toast.LENGTH_SHORT).show();
return false;
}
});
return convertView;
}
}
并将此适配器设置为您的微调器
mTestSPN = (Spinner) findViewById(R.id.spn_test);
TestSpinnerAdapter testSpinnerAdapter = new TestSpinnerAdapter(getResources().getStringArray(R.array.array_name));
mTestSPN.setAdapter(testSpinnerAdapter);
在string.xml中
<string-array name="array_name">
<item>Array Item One</item>
<item>Array Item Two</item>
<item>Array Item Three</item>
</string-array>