dyn*_*tem 5 android listview android-adapter baseadapter android-viewholder
我定义了以下代码,以便能够在特定位置设置文本.
if(position == 0) {
holder.text.setText("blah");
}
Run Code Online (Sandbox Code Playgroud)
我想要检查位置是否等于0,然后如果是,则在位置p上设置文本 - 每次它是p =位置+ 1(下一个位置).我们是否能够将文本从持有者设置为文本视图,但是在某个位置.
谢谢.
我认为您仍在使用ListView,如果不是,请更新问题标题.
在您的getView(int position, View convertView, ViewGroup parent)
方法中,检查要为其创建视图的位置.既然你已经在使用holder,我假设你在提取持有者之前已经完成了(convertView!= null)检查.
在getView(int position,View convertView,ViewGroup parent)中,您可以检查
if (position == 0) {
holder.text.setText("blah");
} else {
holder.text.setText("");
}
Run Code Online (Sandbox Code Playgroud)
请记住,else部分是必需的,因为视图往往会被重用,因此您的早期"blah"需要重置,否则在您的视图滚动时将在其他视图中可见.
有关如何重用视图的详细说明,您可以查看Romain Guy的精彩演讲,其中介绍了有关ListView的所有内容.
首先,你需要实现自己的RecyclerView.Adapter,在Adapter内部,你需要实现方法onBindViewHolder(),可以根据位置指定文本。
当位置为 0 时,您将获取一些文本并将其保存到字符串字段中,当位置为 1 时,您相应地设置该 TextView 的文本。
public class CustomAdapter extends RecyclerView.Adapter {
private String tempText;
...
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if(position == 0) {
tempText = "bla";
}else if (position == 1){
holder.text.setText(tempText);
}
}
Run Code Online (Sandbox Code Playgroud)
}