我有一个问题,显示第一个项目选择在旋转器下拉菜单。当旋转器第一次初始化时,行被填充为“Nothing selected view”,当从下拉菜单中选择了某些内容时,旋转器视图被更改为下拉菜单中的选定值。它在任何情况下都有效,除了在初始化后选择第一个项的情况。我想说的是,旋转器行的值在下拉列表中写入选定项的值,除了0项。只有在之前选择了项目0>时,才会在旋转器中显示零项。如果在spinner初始化后选择0,则不会显示。
这使我得出了适配器以奇怪的方式工作的结论。当spinner初始化时,它将用default填充。之后,如果选择的项高于默认值,它将更改默认值,但如果默认值不是change,状态保持不变?换句话说,只有在选择的值与当前值不同的情况下,旋转器才会改变视图?另一个困扰我的问题是,在getView方法中,我得到了正确的值和正确的位置,但视图无论如何都不会改变。就像重写的东西,重写方法,如果值为0,则不会让视图改变。
碎片旋转器
spinnerHairColor.setAdapter(new CustomSpinnerAdapter(R.string.hair_color,
getContext(), R.layout.spinner_dropdown, values.getHair_color()));
spinnerHairColor.setFocusableInTouchMode(true);
spinnerHairColor.setOnFocusChangeListener(spinnerFocusListener);
public class CustomSpinnerAdapter extends ArrayAdapter<Values.ValuesProperty> implements SpinnerAdapter {
private Context context;
private List<Values.ValuesProperty> valuesProperty;
protected LayoutInflater layoutInflater;
private int unselectedText;
private boolean init = false;
public CustomSpinnerAdapter(int unselectedText, Context context, int nothingSelectedLayout, List<Values.ValuesProperty> valuesProperty) {
super(context, nothingSelectedLayout, valuesProperty);
this.unselectedText = unselectedText;
this.valuesProperty = valuesProperty;
layoutInflater = LayoutInflater.from(context);
this.context=context;
init = true;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = layoutInflater.inflate(R.layout.spinner_dropdown, parent, false);
TextView tv = (TextView) row.findViewById(R.id.spinnerNothingText);
if (position == 0 && init) {
return getNothingSelectedView(parent);
}
Values.ValuesProperty v = getItem(position);
tv.setText(getContext().getText(unselectedText) + ": " + v.getName());
return row;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
Values.ValuesProperty v = getItem(position);
View row = layoutInflater.inflate(R.layout.item_spinner, parent, false);
TextView tv = (TextView) row.findViewById(R.id.spinnerText);
tv.setText(v.getName());
return row;
}
protected View getNothingSelectedView(ViewGroup parent)
{
View backView = layoutInflater.inflate(R.layout.spinner_dropdown, parent, false);
TextView tv = (TextView) backView.findViewById(R.id.spinnerNothingText);
tv.setText(getContext().getText(unselectedText));
// to make sure if 0 is selected isnt inital 0
init = false;
return backView;
}
}
我设法想出了一个解决办法。这是适用于旋转器的适配器,如果没有选择,则该旋转器可能具有默认值
public class CustomSpinnerAdapter extends ArrayAdapter<Values.ValuesProperty> implements SpinnerAdapter{
private Context context;
private List<Values.ValuesProperty> valuesProperty;
protected LayoutInflater layoutInflater;
private int unselectedText;
private boolean init = false;
public CustomSpinnerAdapter(int unselectedText, Context context, int nothingSelectedLayout,
List<Values.ValuesProperty> valuesProperty) {
super(context, nothingSelectedLayout, valuesProperty);
this.unselectedText = unselectedText;
this.valuesProperty = valuesProperty;
layoutInflater = LayoutInflater.from(context);
this.context = context;
init = true;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = layoutInflater.inflate(R.layout.spinner_dropdown, parent, false);
TextView tv = (TextView) row.findViewById(R.id.spinnerNothingText);
if (position == 0 && init) {
init = false;
tv.setText(getContext().getText(unselectedText));
return row;
}
Values.ValuesProperty v = getItem(position);
if (position == 0 && parent.hasFocus())
notifyDataSetChanged();
tv.setText(getContext().getText(unselectedText) + ": " + v.getName());
return row;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
Values.ValuesProperty v = getItem(position);
View rowDrop = layoutInflater.inflate(R.layout.item_spinner, parent, false);
TextView tvDrop = (TextView) rowDrop.findViewById(R.id.spinnerText);
tvDrop.setText(v.getName());
return rowDrop;
}
}
添加颜色微调器 更新片段 这是我第一次问问题,我是一名新的程序员,一直在尝试使用kotlin和java的android。我有一个应用程序,允许用户添加一件衣服,选项是通过微调器设置的。问题在于,当用户从保存的微调器中选择一个项目时,以及当我想要更新值时,如图所示,蓝色文字表示棕色是从“添加服装项目”微调器中选择的选项,但微调器显示灰色。是否有办法将微调器设置为棕色,而不是默认值。
有可能在JList中获得所选元素的位置吗?我想让它将JFrame放在单击选项的正下方。
问题内容: 在处理类似于Facebook的内容提要的React应用程序组件中,我遇到了一个错误: Feed.js:94未定义“ parsererror”“ SyntaxError:JSON中位置0处的意外令牌< 我遇到了类似的错误,事实证明这是render函数中HTML的错字,但这里似乎并非如此。 更令人困惑的是,我将代码回滚到了较早的已知工作版本,但仍然遇到错误。 Feed.js: 在Chrom
问题内容: 在处理类似于Facebook的内容提要的React应用程序组件中,我遇到了一个错误: Feed.js:94未定义的“ parsererror”“ SyntaxError:JSON中位置0处的意外令牌< 我遇到了一个类似的错误,事实证明这是render函数中HTML的错字,但这里似乎并非如此。 更令人困惑的是,我将代码回滚到了较早的已知工作版本,但仍然出现错误。 Feed.js: 在Ch
正在寻找设置下拉列表占位符的字体颜色的方法。当需要select id时,以下操作起作用: 但是,我不希望输入需要这些下拉列表。一旦我移除所需的标记,占位符字体就会变回黑色。 以下是我的下拉列表:
我正在我的 WPF 应用程序中使用 ComboBox 并遵循 MVVM。有一个字符串列表,我想在我的组合框中显示。 XAML: 查看模型: 现在这段代码运行得非常好。我可以从视图中选择,我可以在视图模型中获得更改,如果我从视图模型中更改SelectedItem,我可以在视图中看到它。 这就是我想要达到的目标。当我从我的视图中更改选定的项目时,我需要检查值是好/坏(或任何东西)设置选定的项目,否则不