Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将ListView中第一项的背景更改为红色_Java_Android_Listview_Android Studio - Fatal编程技术网

Java 将ListView中第一项的背景更改为红色

Java 将ListView中第一项的背景更改为红色,java,android,listview,android-studio,Java,Android,Listview,Android Studio,我有一个名为listv的listView,我正在用数组填充listView。我希望listView中第一项的背景颜色为红色。我可以填充列表,但是我无法使列表中的第一项变为红色 这就是我试过的。我的代码是fallows 我的班级 private ArrayList<String> arrayList; private ArrayAdapter<String> adapter; private EditText txtInput; @Override protected vo

我有一个名为listv的listView,我正在用数组填充listView。我希望listView中第一项的背景颜色为红色。我可以填充列表,但是我无法使列表中的第一项变为红色

这就是我试过的。我的代码是fallows

我的班级

private ArrayList<String> arrayList;
private ArrayAdapter<String> adapter;
private EditText txtInput;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list_deadlines);
    final ListView listView = (ListView)findViewById(R.id.listv);
    String[] items= {"HCI","ITM","Presentation"};
    arrayList=new ArrayList<>(Arrays.asList(items));
    adapter=new ArrayAdapter<String>(this,R.layout.list_item,R.id.txtitem,arrayList);
    listView.setAdapter(adapter);

    txtInput=(EditText)findViewById(R.id.txtinputs);


            if(R.id.listv == 0)
                listView.setBackgroundColor(Color.parseColor("#fffff"));


    });

}
private ArrayList ArrayList;
专用阵列适配器;
私有编辑文本输入;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u list\u截止日期);
最终ListView ListView=(ListView)findViewById(R.id.listv);
字符串[]项={“HCI”、“ITM”、“表示”};
arrayList=新的arrayList(Arrays.asList(items));
适配器=新的ArrayAdapter(this,R.layout.list_项,R.id.txtitem,arrayList);
setAdapter(适配器);
txtInput=(EditText)findViewById(R.id.txtinputs);
如果(R.id.listv==0)
setBackgroundColor(Color.parseColor(“#fffff”);
});
}
xml



您可以使用自定义ArrayAdapter,覆盖getView(),并在其中检查“位置”==0,然后将项目的背景更改为您喜欢的背景。我相信在调用notifyDataSetChanged()之后,每个项都会调用它

这不是正确的方法。渲染每一行发生在适配器内部。您必须定义自己的适配器,也可以从ArrayAdapter进行扩展。在其getView()方法中,首先调用基类getView,如果位置为零,则设置背景色

class MyAdapter extends ArrayAdapter<String> {
     View getView(int position, View convertView, ViewGroup parent) {
          View ret = super.getView(position, convertView, parent);
          if (position == 0) {
              ret.setBackground(red);
          } else {
             ret.setBackground(white);
          }
          return ret;
     }
} 
class MyAdapter扩展了ArrayAdapter{
视图getView(int位置、视图转换视图、视图组父视图){
View ret=super.getView(位置、转换视图、父级);
如果(位置==0){
后退后退地面(红色);
}否则{
后退后退地面(白色);
}
返回ret;
}
} 
您还可以添加一个标题视图来实现这一点


除非你需要使用ListVIEW,否则最好考虑一下RealReVIEW。< /P>所以我只需要创建一个新的类来添加那个代码,然后在我的另一个类中调用它。你创建一个适配器类,如上面所示的MyAdvor,然后做ListVIEW。当呈现列表项时,框架将调用适配器的getView。很抱歉打扰你,但是你会怎么做呢。谢谢你

class MyAdapter extends ArrayAdapter<String> {
     View getView(int position, View convertView, ViewGroup parent) {
          View ret = super.getView(position, convertView, parent);
          if (position == 0) {
              ret.setBackground(red);
          } else {
             ret.setBackground(white);
          }
          return ret;
     }
}