2012-09-21 46 views
-2

我想在android中使用标签“CATEGORY”实现一个下拉菜单。如何保持文本与更改在Android的微调选择?

在这里,当我点击“CATEGORY”按钮时,应该填充一个列表。但是,当我选择该列表中的任何项目时,我不想更改标签“CATEGORY”。

如何做到这一点?

+0

@ m0skit0。如果你认为我的英文不好,或者如果我的问题有问题,那么你可以选择编辑问题不是吗?这不是我期望的答案。这真是令人尴尬! – Bharath

+0

您是否阅读过我发布的链接?如果你不想再读这样的评论,请这样做。 – m0skit0

回答

1

一旦你了解加载值微调器如何工作,这变得容易。 :)

微调器使用getView方法填充封闭的微调器,并使用getDropDownView方法创建下拉菜单。利用这些信息,您可以创建一个自定义适配器,该适配器可以在当前选择内容之外显示关闭视图中的内容。这也可以避免在数据中包含非数据(如“CATEGORY”一词)。

一个简单的例子:

public class CustomAdapter extends ArrayAdapter { 
    private Context context; 
    private int textViewResourceId; 
    private String[] objects; 

    public CustomAdapter(Context context, int textViewResourceId, 
      String[] objects) { 
     super(context, textViewResourceId, objects); 
     this.context = context; 
     this.textViewResourceId = textViewResourceId; 
     this.objects = objects; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     if (convertView == null) 
      convertView = View.inflate(context, textViewResourceId, null); 
      TextView tv = (TextView) convertView; 
      tv.setText("CATEGORY"); 
     } 
     return convertView; 
    } 
} 

微调的其余部分将作为正常的,所以你可以捕捉到onItemSelectedListener选择。

+0

非常感谢你。它的工作完美!没有任何令人尴尬的声明,你已经把代码放在了我的面前。感谢您的答复 – Bharath

0

里面你OnItemSelectedListener方法,让你选择的值,并存储在某个地方共享首选项和重置使用位置spinnersetSelection(0); :)如果微调点击再次从共享的首选项:)