如何以编程方式更改所选项目并修改视图?
How to programmatically change the selected item and modify a view?
我有一个小问题。
我在 android 中使用 Spinner。例如微调器包含 4 个字符串项:Item1、Item2、Item3、Item4。微调器由例如 Item3 设置。现在我想以编程方式将所选项目更改为 Item2 并将字体颜色更改为红色。所以我做了:
_spinner.setSelection(1);
View view = _spinner.getSelectedView();
if(view instanceof TextView)
{
// change color
}
但是没有用。这是因为当我获得 selectedView 时,Item3 仍处于选中状态,所以我更改了 Item3 视图的颜色。如何解决?
试试这个
spinner= findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
((TextView) adapterView.getChildAt(0)).setTextColor(getResources().getColor(R.color.black));
((TextView) adapterView.getChildAt(0)).setTextSize(19); }
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
尝试像这样设置适配器:
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item, list) {
@Override
public View getDropDownView(int position, View convertView,
ViewGroup parent) {
View view = super.getDropDownView(position, convertView, parent);
TextView tv = (TextView) view;
if (position == 0)
tv.setTextColor(ContextCompat.getColor(Activity.this, android.R.color.darker_gray));
else
tv.setTextColor(ContextCompat.getColor(Activity.this, android.R.color.black));
return view;
}
};
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter );
spinner.setSelection(Adapter.getPosition(Item2));
这样您就可以轻松地为Item1、Item2或Item3设置不同的颜色
并且 item2 将在微调器上动态设置。
我有一个小问题。
我在 android 中使用 Spinner。例如微调器包含 4 个字符串项:Item1、Item2、Item3、Item4。微调器由例如 Item3 设置。现在我想以编程方式将所选项目更改为 Item2 并将字体颜色更改为红色。所以我做了:
_spinner.setSelection(1);
View view = _spinner.getSelectedView();
if(view instanceof TextView)
{
// change color
}
但是没有用。这是因为当我获得 selectedView 时,Item3 仍处于选中状态,所以我更改了 Item3 视图的颜色。如何解决?
试试这个
spinner= findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
((TextView) adapterView.getChildAt(0)).setTextColor(getResources().getColor(R.color.black));
((TextView) adapterView.getChildAt(0)).setTextSize(19); }
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
尝试像这样设置适配器:
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item, list) {
@Override
public View getDropDownView(int position, View convertView,
ViewGroup parent) {
View view = super.getDropDownView(position, convertView, parent);
TextView tv = (TextView) view;
if (position == 0)
tv.setTextColor(ContextCompat.getColor(Activity.this, android.R.color.darker_gray));
else
tv.setTextColor(ContextCompat.getColor(Activity.this, android.R.color.black));
return view;
}
};
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter );
spinner.setSelection(Adapter.getPosition(Item2));
这样您就可以轻松地为Item1、Item2或Item3设置不同的颜色 并且 item2 将在微调器上动态设置。