要创建一个自定义的Spinner并且不使用选择器,可以使用自定义的Adapter来实现。
首先,你需要创建一个自定义的Adapter类,继承自ArrayAdapter或BaseAdapter。在这个Adapter中,你可以自定义Spinner的每个项的外观和行为。
这是一个简单的示例代码:
public class CustomSpinnerAdapter extends ArrayAdapter {
private Context mContext;
private ArrayList mData;
public CustomSpinnerAdapter(Context context, ArrayList data) {
super(context, 0, data);
mContext = context;
mData = data;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.spinner_item, null);
}
// 设置每个项的外观和行为
TextView textView = (TextView) view.findViewById(R.id.text_view);
textView.setText(mData.get(position));
return view;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.spinner_dropdown_item, null);
}
// 设置下拉列表中每个项的外观和行为
TextView textView = (TextView) view.findViewById(R.id.text_view);
textView.setText(mData.get(position));
return view;
}
}
在上面的代码中,getView方法用于设置Spinner中每个项的外观和行为,getDropDownView方法用于设置下拉列表中每个项的外观和行为。你可以自定义这些方法来实现你需要的效果。
然后,你需要创建两个布局文件spinner_item.xml和spinner_dropdown_item.xml,用于定义每个项的外观。这是一个简单的示例布局文件:
spinner_item.xml:
spinner_dropdown_item.xml:
最后,你可以在你的Activity中使用这个自定义的Spinner:
ArrayList data = new ArrayList<>();
data.add("Item 1");
data.add("Item 2");
data.add("Item 3");
CustomSpinnerAdapter adapter = new CustomSpinnerAdapter(this, data);
Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.setAdapter(adapter);
在上面的代码中,你需要将R.id.spinner替换为你在布局文件中定义的Spinner的id。
这样,你就可以创建一个自定义的Spinner并且不使用选择器来实现你需要的效果。