在Android开发中,微调器(Spinner)是一种常用的UI组件,用于显示一个下拉列表,用户可以从中选择一个选项。如果你想要使用一个对象列表来填充微调器,并且显示的是对象的名称,你可以按照以下步骤进行:
假设你有一个对象列表,每个对象都有一个getName()
方法来获取对象的名称。
getView()
方法中,返回对象名称的TextView。public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
List<MyObject> objectList = new ArrayList<>();
objectList.add(new MyObject("Option 1"));
objectList.add(new MyObject("Option 2"));
ArrayAdapter<MyObject> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, objectList) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView text = view.findViewById(android.R.id.text1);
text.setText(getItem(position).getName());
return view;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
View view = super.getDropDownView(position, convertView, parent);
TextView text = view.findViewById(android.R.id.text1);
text.setText(getItem(position).getName());
return view;
}
};
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner spinner = findViewById(R.id.spinner);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
MyObject selectedObject = (MyObject) parent.getItemAtPosition(position);
// 处理选中对象
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// 当没有选择时的处理
}
});
}
}
在这个示例中,MyObject
类需要有一个getName()
方法来返回对象的名称。这样,Spinner就能正确显示每个对象的名称了。
腾讯云存储专题直播
云+社区技术沙龙[第14期]
开箱吧腾讯云
T-Day
企业创新在线学堂
Techo Day
云+社区开发者大会(杭州站)
云+社区技术沙龙第33期
DBTalk
云+社区技术沙龙[第8期]
领取专属 10元无门槛券
手把手带您无忧上云