我一直在研究一个学校项目的应用程序(第一次制作应用程序,学校并没有帮助我)。 我想添加一个微调器来显示多个组名,并决定我需要一个自定义适配器,所以我做了一个,但现在我无法调整对话框结果的大小。
以下是我使用的代码: 自定义适配器
public class GroupAdapter extends ArrayAdapter<Group> {
public int _layout;
public int _dropdown;
public GroupAdapter(Context context, int resource, int dropdown, List<Group> object){
super(context, resource, object);
_dropdown = dropdown;
_layout = resource;
}
public GroupAdapter(Context context, int resource, List<Group> objects) {
super(context, resource, objects);
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
GroupHolder mainViewHolder = null;
if (convertView == null){
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(_dropdown, parent, false);
GroupHolder groupHolder = new GroupHolder();
groupHolder.textView = (TextView) convertView.findViewById(R.id.textView_groupName);
convertView.setTag(groupHolder);
}
convertView.setMinimumWidth(100);
mainViewHolder = (GroupHolder) convertView.getTag();
Group group = getItem(position);
mainViewHolder.textView.setText(group.Name);
return convertView;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(getContext());
View view = inflater.inflate(_layout, parent, false);
TextView header = (TextView) view.findViewById(R.id.textView_headGroupName);
header.setText(getItem(position).Name);
return view;
}
布局xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:text="TextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView_headGroupName"
android:textSize="30sp"
android:textStyle="normal|bold"
android:textAlignment="center" />
</LinearLayout>
下拉列表:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="100dp"
android:layout_height="match_parent">
<TextView
android:text="TextView"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:id="@+id/textView_groupName"
android:textSize="18sp" />
</LinearLayout>
编辑: 声明微调器:
Spinner spinner = (Spinner) findViewById(R.id.spinner_groups);
GroupAdapter spinnerAdapter = new GroupAdapter(this, R.layout.activity_header_spinner, R.layout.activity_listitem_groupitem, lockManager.Groups);
spinner.setAdapter(spinnerAdapter);
我希望有人能够帮助我。我希望我不会在这里问任何愚蠢的事。
提前致谢, Patrick de Mooij