Java Android Spinner getView

Java Android Spinner getView,java,android,Java,Android,我正在创建一个自定义适配器,并使用getView方法尝试只显示一次默认文本。现在我遇到了一个问题,当我单击列表中的第一个项目时,默认文本会保留,但其他任何项目都不会保留?有什么建议吗 谢谢!(我的代码有点凌乱,因为我只是想调试一下) 我不太清楚您想做什么,但是您可以通过检查位置是否为0来强制顶行始终显示select消息。还要注意,在下面的代码中,如果convertView不为null,我将重用它。如果convertView可用,则重用它比每次重新创建新视图更快 @Override

我正在创建一个自定义适配器,并使用getView方法尝试只显示一次默认文本。现在我遇到了一个问题,当我单击列表中的第一个项目时,默认文本会保留,但其他任何项目都不会保留?有什么建议吗

谢谢!(我的代码有点凌乱,因为我只是想调试一下)


我不太清楚您想做什么,但是您可以通过检查位置是否为0来强制顶行始终显示select消息。还要注意,在下面的代码中,如果convertView不为null,我将重用它。如果convertView可用,则重用它比每次重新创建新视图更快

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        if(convertView == null) {
            convertView = new TextView(ForgotPasswordActivity.this);
        }

        if(position == 0) {
            convertView.setText("Please select School");
        } else {
            convertView.setText("Hello");
        }

        return convertView;

    }

还要记住,通过强制位置0显示select消息,您并没有在位置0处显示适配器中的实际数据。确保这是您要执行的操作,或在备份数据数组的第一个位置插入一段虚拟数据。

您必须使用getCount函数:

@Override
public int getCount() {
    return super.getCount() -1; // This makes the trick;
}
此技巧不会显示您在微调器中添加的最后一项(因此,当您在微调器中添加完文本后,添加将不会在微调器中显示的文本,并在单击微调器之前将其显示为默认值)

祝你好运

你所说的“保留默认文本,但不保留任何其他项目”是什么意思?你的问题令人困惑。。请解释清楚
@Override
public int getCount() {
    return super.getCount() -1; // This makes the trick;
}