Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.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
Android 修复代码自定义列表视图_Android - Fatal编程技术网

Android 修复代码自定义列表视图

Android 修复代码自定义列表视图,android,Android,我有一门课: public class custumkiemtra extends ArrayAdapter<Cauhoi>{ Context context; int resource; List<Cauhoi> ch; public custumkiemtra(Context context, int resource, List<Cauhoi> ch) { super(context, resource,

我有一门课:

public class custumkiemtra extends ArrayAdapter<Cauhoi>{
    Context context;
    int resource;
    List<Cauhoi> ch;
    public custumkiemtra(Context context, int resource, List<Cauhoi> ch) {
        super(context, resource, ch);
        this.context = context;
        this.resource = resource;
        this.ch = ch;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        final RadioButton SDA,SDB,SDC,SDD;

        LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        final View viewrow = inflater.inflate(R.layout.custumkiemtra,parent,false);

        TextView ndch = (TextView)viewrow.findViewById(R.id.cauhoi);
        final Button ndA = (Button)viewrow.findViewById(R.id.DA);
        final Button ndB = (Button)viewrow.findViewById(R.id.DB);
        final Button ndC = (Button)viewrow.findViewById(R.id.DC);
        final Button ndD = (Button)viewrow.findViewById(R.id.DD);

        SDA = (RadioButton) viewrow.findViewById(R.id.SUADA);
        SDB = (RadioButton) viewrow.findViewById(R.id.SUADB);
        SDC = (RadioButton) viewrow.findViewById(R.id.SUADC);
        SDD = (RadioButton) viewrow.findViewById(R.id.SUADD);
        SDA.setEnabled(false);
        SDB.setEnabled(false);
        SDC.setEnabled(false);
        SDD.setEnabled(false);
        final Cauhoi getch = ch.get(position);
        ndch.setText("Cau "+ String.valueOf(getch.get_id()) +": " + getch.getNoidung_cauhoi());
        ndA.setText(getch.getNoidung_traloi1());
        ndB.setText(getch.getNoidung_traloi2());
        ndC.setText(getch.getNoidung_traloi3());
        ndD.setText(getch.getNoidung_traloi4());
        ndA.setTag(getch.get_id());
        ndB.setTag(getch.get_id());
        ndC.setTag(getch.get_id());
        ndD.setTag(getch.get_id());
        ndA.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                ndA.setBackgroundResource(R.drawable.nutdapanchon);
                ndB.setBackgroundResource(R.drawable.nutdapan);
                ndC.setBackgroundResource(R.drawable.nutdapan);
                ndD.setBackgroundResource(R.drawable.nutdapan);
                SDA.setEnabled(true);
                SDB.setEnabled(false);
                SDC.setEnabled(false);
                SDD.setEnabled(false);

            }
        });
return viewrow;
}
公共类custumkeimtra扩展了ArrayAdapter{
语境;
智力资源;
列表ch;
公共custumkeimtra(上下文、int资源、列表ch){
super(上下文、资源、ch);
this.context=上下文;
这个资源=资源;
this.ch=ch;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
最终单选按钮SDA、SDB、SDC、SDD;
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
最终视图视图行=充气机。充气(R.layout.custumkiemtra,父项,false);
TextView ndch=(TextView)viewrow.findViewById(R.id.cauhoi);
最终按钮ndA=(按钮)viewrow.findViewById(R.id.DA);
最终按钮ndB=(按钮)viewrow.findViewById(R.id.DB);
最终按钮ndC=(按钮)viewrow.findViewById(R.id.DC);
最终按钮ndD=(按钮)viewrow.findViewById(R.id.DD);
SDA=(单选按钮)viewrow.findViewById(R.id.SUADA);
SDB=(RadioButton)viewrow.findViewById(R.id.SUADB);
SDC=(单选按钮)viewrow.findViewById(R.id.SUADC);
SDD=(单选按钮)视图行.查找视图行id(R.id.SUADD);
SDA.setEnabled(假);
SDB.setEnabled(false);
SDC.setEnabled(错误);
SDD.设置启用(错误);
最终Cauhoi getch=ch.get(位置);
ndch.setText(“Cau”+String.valueOf(getch.get_id())+”:“+getch.getNoidung_cauhoi());
ndA.setText(getch.getNoidung_traloi1());
ndB.setText(getch.getNoidung_traloi2());
ndC.setText(getch.getNoidung_traloi3());
ndD.setText(getch.getNoidung_traloi4());
ndA.setTag(getch.get_id());
setTag(getch.get_id());
setTag(getch.get_id());
setTag(getch.get_id());
ndA.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
ndA.退耕地资源(R.可拔除的坚果);
ndB.挫折地资源(R.可提取的nutdapan);
退耕地资源(R.drawable.nutdapan);
退耕地资源(R.drawable.nutdapan);
SDA.setEnabled(真);
SDB.setEnabled(false);
SDC.setEnabled(错误);
SDD.设置启用(错误);
}
});
返回视图行;
}
然后我用它为Listview创建一个适配器。当我点击NdA按钮时,它的背景变成“nutdapanchon”,SDA为“true”,但我滚动Listview并返回
我的ndA背景是“nutdapan”,SDA是“flase”。为什么?如何解决此问题?请帮助我?

Listview元素在屏幕外自动回收,请尝试以下方法解决您的问题:-

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

         View vi = convertView;
         ViewHolder holder;

         if(convertView==null){

             /****** Inflate tabitem.xml file for each row ( Defined below ) *******/
             vi = inflater.inflate(R.layout.tabitem, null);

             /****** View Holder Object to contain tabitem.xml file elements ******/

             holder = new ViewHolder();
             holder.text = (TextView) vi.findViewById(R.id.text);
             holder.text1=(TextView)vi.findViewById(R.id.text1);
             holder.image=(ImageView)vi.findViewById(R.id.image);

            /************  Set holder with LayoutInflater ************/
             vi.setTag( holder );
         }
         else 
             holder=(ViewHolder)vi.getTag();
请参阅以下链接:-


只需使用布尔值即可使该状态保持稳定。您是否尝试过使用ViewHolder模式?转到我的答案并使用ViewHolder模式我尝试过,但失败了。有人可以帮助我解决此问题。我只想在单击按钮时更改按钮的背景,然后在滚动listview时按住按钮。我很关心listview.setRecyclerListener,但我不知道如何使用它它。我添加了像你一样的持有者。当我滚动列表视图时,它是变化的,但我发现了这样一个问题:当我单击列表[0]中的4个buton(例如:ndA)中的一个时,它是变化后退,但在列表[6]中也是ndA。为什么?