更改微调器项目文本

时间:2015-04-07 05:42:26

标签: java android android-spinner

我有一个actionbar微调器示例项目。它工作正常。现在我正在尝试改变一些事情:

当我打开我的应用程序时,微调器显示以下内容:

enter image description here

默认情况下选择本地子项目,这很好,但是当我选择项目本地时,我想将本地文本更改为其他内容吗?

当我打开应用程序时?默认情况下,它显示第一个项目文本,如上面的屏幕。我想改变像TITLE这样的东西 ITEMS ,子标题将是 SubItems (第一项的默认选择很好 - 只是我不想显示本地文本相反,我想显示 SubItems

现在显示 ITEMS 本地 - 仅当我从微调器中点击本地项时,才能更改此本地文本。

enter image description here

微调器与项目扩展时的文本应该相同。如下所示:

enter image description here

我认为它可以在适配器中但不确定如何:

这是我的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;
    }

}

让我知道!

谢谢!

1 个答案:

答案 0 :(得分:1)

只需使用getView()方法显示所选的下拉项目。 所以你会有类似的东西         txtTitle.setText(spinnerNavItem.get(position).getDisplayTitle()); // <--- extend SpinnerNavItem with displaytitle

getView()方法中。而已。 : - )