我有一个actionbar微调器示例项目。它工作正常。现在我正在尝试改变一些事情:
当我打开我的应用程序时,微调器显示以下内容:
默认情况下选择本地子项目,这很好,但是当我选择项目本地时,我想将本地文本更改为其他内容吗?
当我打开应用程序时?默认情况下,它显示第一个项目文本,如上面的屏幕。我想改变像TITLE这样的东西 ITEMS ,子标题将是 SubItems (第一项的默认选择很好 - 只是我不想显示本地文本相反,我想显示 SubItems 。
现在显示 ITEMS 和本地 - 仅当我从微调器中点击本地项时,才能更改此本地文本。
微调器与项目扩展时的文本应该相同。如下所示:
我认为它可以在适配器中但不确定如何:
这是我的customAdapter java文件:
public class SubItemNavigationAdapter extends BaseAdapter
{
private TextView txtTitle;
private ArrayList<SpinnerNavItem> spinnerNavItem;
private Context context;
private TextView txtHeading;
public SubItemNavigationAdapter(Context context, ArrayList<SpinnerNavItem> spinnerNavItem)
{
this.spinnerNavItem = spinnerNavItem;
this.context = context;
}
@Override
public int getCount()
{
return spinnerNavItem.size();
}
@Override
public Object getItem(int index)
{
return spinnerNavItem.get(index);
}
@Override
public long getItemId(int position)
{
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
if (convertView == null)
{
LayoutInflater mInflater = (LayoutInflater)
context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.list_item_title_navigation, null);
}
txtTitle = (TextView) convertView.findViewById(R.id.txtTitle);
txtTitle.setText(spinnerNavItem.get(position).getTitle());
return convertView;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent)
{
if (convertView == null)
{
LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.list_item_title_navigation, null);
}
txtTitle = (TextView) convertView.findViewById(R.id.txtTitle);
txtTitle.setPadding(20, 20, 0, 20);
txtHeading = (TextView) convertView.findViewById(R.id.txtheading);
txtHeading.setVisibility(View.GONE);
txtTitle.setText(spinnerNavItem.get(position).getTitle());
return convertView;
}
}
让我知道!
谢谢!
答案 0 :(得分:1)
只需使用getView()
方法显示所选的下拉项目。
所以你会有类似的东西
txtTitle.setText(spinnerNavItem.get(position).getDisplayTitle()); // <--- extend SpinnerNavItem with displaytitle
在getView()
方法中。而已。 : - )