Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.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/1/cocoa/3.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
我无法解决我的错误,我';我正在做回收视图中的复选框 package com.example.project.Holder; 导入android.content.Context; 导入android.view.LayoutInflater; 导入a_Android - Fatal编程技术网

我无法解决我的错误,我';我正在做回收视图中的复选框 package com.example.project.Holder; 导入android.content.Context; 导入android.view.LayoutInflater; 导入a

我无法解决我的错误,我';我正在做回收视图中的复选框 package com.example.project.Holder; 导入android.content.Context; 导入android.view.LayoutInflater; 导入a,android,Android,我无法解决我的错误,我';我正在做回收视图中的复选框 package com.example.project.Holder; 导入android.content.Context; 导入android.view.LayoutInflater; 导入android.view.view; 导入android.view.ViewGroup; 导入android.widget.CheckBox; 导入android.widget.ImageView; 导入android.widget.TextVi

我无法解决我的错误,我';我正在做回收视图中的复选框
package com.example.project.Holder;
导入android.content.Context;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.CheckBox;
导入android.widget.ImageView;
导入android.widget.TextView;
导入android.widget.Toast;
导入androidx.annotation.NonNull;
导入androidx.recyclerview.widget.LinearLayoutManager;
导入androidx.recyclerview.widget.recyclerview;
导入com.bumptech.glide.glide;
导入com.bumptech.glide.request.RequestOptions;
导入com.example.project.Model.User;
导入com.example.project.R;
导入java.util.List;
公共课出席者{
私有上下文;
私有用户适配器;
public void setConfig(RecyclerView RecyclerView、上下文上下文、列表用户、列表键){
mContext=上下文;
userAdapter=新的userAdapter(用户、密钥);
setLayoutManager(新的LinearLayoutManager(上下文));
recyclerView.setAdapter(userAdapter);
}
类UserItemView扩展了RecyclerView.ViewHolder{
公共图像视图出席者图片视图;
私人TextView出席者tem_TextView;
私钥;
公共复选框出席率(u)复选框;;
公共UserItemView(视图组父级){
super(layoutiner.from)(mContext)。
充气(R.layout.item_Attention_bottom,parent,false));
attendanceitem_imageview=(imageview)itemView.findViewById(R.id.attendanceitem_imageview);
attendanceitem_textview=(textview)itemView.findViewById(R.id.attendanceitem_textview);
考勤复选框=(复选框)itemView.findViewById(R.id.Attention\u复选框);
}
公共void绑定(用户,字符串键){
attendanceitem_textview.setText(user.getUsername());
this.key=key;
}
}
类UserAdapter扩展了RecyclerView.Adapter{
列表用户列表;
私人名单;
公共用户适配器(列表用户列表,列表mkeys){
this.userList=userList;
this.mkeys=mkeys;
}
@非空
@凌驾
public UserItemView onCreateViewHolder(@NonNull ViewGroup父级,int viewType){
返回新的UserItemView(父级);
}
@凌驾
public void onBindViewHolder(@NonNull UserItemView holder,int位置){
最终int pos=位置;
holder.attention\u checkBox.setChecked(userList.get(position.isCheckBox());
holder.attention_checkBox.setTag(userList.get(position));
绑定(userList.get(position),mkeys.get(position));
Glide.with(holder.attendanceitem_imageview.getContext())
.load(userList.get(position.profileImageUrl)
.apply(新的RequestOptions())
.into(holder.attendanceitem_imageview);
holder.attention\u checkBox.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图){
复选框考勤\复选框=(复选框)查看;
用户联系人=(用户)考勤检查框.getTag();
contact.setCheckBox(考勤检查框.isChecked());
userList.get(pos.setCheckBox(attention_checkBox.isChecked());
}
});
}
@凌驾
public int getItemCount(){
返回userList.size();
}
}
}
包com.example.project.Model;
导入android.net.Uri;
导入android.widget.ImageView;
公共类用户{
公共字符串电子邮件;
公共字符串profileImageUrl;
公共字符串用户名;
公共字符串uid;
公共字符串pushToken;
公共字符串作业;
公共字符串评论;
公共布尔复选框;
公共用户(){
}
公共字符串getEmail(){
回复邮件;
}
公用电子邮件(字符串电子邮件){
this.email=电子邮件;
}
公共字符串getProfileImageUrl(){
返回profileImageUrl;
}
public void setProfileImageUrl(字符串profileImageUrl){
this.profileImageUrl=profileImageUrl;
}
公共字符串getUsername(){
返回用户名;
}
public void setUsername(字符串用户名){
this.username=用户名;
}
公共字符串getUid(){
返回uid;
}
公共void setUid(字符串uid){
this.uid=uid;
}
公共字符串getPushToken(){
返回pushToken;
}
公共无效setPushToken(字符串pushToken){
this.pushToken=pushToken;
}
公共字符串getJob(){
返回工作;
}
公共无效设置作业(字符串作业){
这个工作=工作;
}
公共字符串getComment(){
回复评论;
}
公共void setComment(字符串注释){
this.comment=注释;
}
公共布尔值isCheckBox(){
返回复选框;
}
公共无效设置复选框(布尔复选框){
this.checkBox=复选框;
}
}
'''
java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“boolean java.lang.boolean.booleanValue()”
位于com.example.project.Model.User.isCheckBox(User.java:77)
在com.example.project.Holder.AttendanceViewHolder$UserAdapter.onBindViewHolder(AttendanceViewHolder.java:80)上
在com.example.project.Holder.AttendanceViewHolder$UserAdapter.onBindViewHolder(AttendanceViewHolder.java:58)上
位于androidx.recyclerview.widget.recyclerview$Adapter.onBindViewHolder(recyclerview.java:6937)
在androidx.recyclerview.widget.recyclerview$Adapter.bindViewHolder(recyclerview.java:6979)上
在androidx.recyclerview.widget.recyclerview$Recycler.trybindviewHolderByDadline(recyclerview.ja)上
package com.example.project.Holder;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.example.project.Model.User;
import com.example.project.R;

import java.util.List;

public class AttendanceViewHolder {

    private Context mContext;
    private UserAdapter userAdapter;


    public void setConfig(RecyclerView recyclerView,Context context,List<User> users,List<String> keys){
        mContext=context;
        userAdapter=new UserAdapter(users,keys);
        recyclerView.setLayoutManager(new LinearLayoutManager(context));
        recyclerView.setAdapter(userAdapter);
    }
    class UserItemView extends RecyclerView.ViewHolder {
        public ImageView attendanceitem_imageview;
        private TextView attendanceitem_textview;
        private String key;
        public CheckBox attendance_checkBox;

        public UserItemView(ViewGroup parent) {
            super(LayoutInflater.from(mContext).
                    inflate(R.layout.item_attendance_bottom, parent, false));
            attendanceitem_imageview = (ImageView) itemView.findViewById(R.id.attendanceitem_imageview);
            attendanceitem_textview = (TextView) itemView.findViewById(R.id.attendanceitem_textview);
            attendance_checkBox =(CheckBox) itemView.findViewById(R.id.attendance_checkBox);
        }

        public void bind(User user, String key) {

            attendanceitem_textview.setText(user.getUsername());

            this.key = key;
        }

    }
    class UserAdapter extends RecyclerView.Adapter<UserItemView> {
             List<User> userList;
            private  List<String> mkeys;

            public UserAdapter(List<User> userList, List<String> mkeys) {
                this.userList = userList;
                this.mkeys = mkeys;


            }

            @NonNull
            @Override
            public UserItemView onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

                return new UserItemView(parent);
            }

            @Override
            public void onBindViewHolder(@NonNull UserItemView holder, int position) {
                final int pos = position;
                holder.attendance_checkBox.setChecked(userList.get(position).isCheckBox());
                holder.attendance_checkBox.setTag(userList.get(position));
                holder.bind(userList.get(position),mkeys.get(position));
                Glide.with(holder.attendanceitem_imageview.getContext())
                        .load(userList.get(position).profileImageUrl)
                        .apply(new RequestOptions())
                        .into(holder.attendanceitem_imageview);
                holder.attendance_checkBox.setOnClickListener(new View.OnClickListener() {
                    public void onClick(View view) {
                        CheckBox attendance_checkBox = (CheckBox) view;
                        User contact = (User) attendance_checkBox.getTag();

                        contact.setCheckBox(attendance_checkBox.isChecked());
                        userList.get(pos).setCheckBox(attendance_checkBox.isChecked());
                    }
                });
            }

            @Override
            public int getItemCount() {
                return userList.size();
            }
        }
}




package com.example.project.Model;

import android.net.Uri;
import android.widget.ImageView;

public class User {
    public String email;
    public String profileImageUrl;
    public String username;
    public String uid;
    public String pushToken;
    public String job;
    public String comment;
    public Boolean checkBox;

    public User() {
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }


    public String getProfileImageUrl() {
        return profileImageUrl;
    }

    public void setProfileImageUrl(String profileImageUrl) {
        this.profileImageUrl = profileImageUrl;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getUid() {
        return uid;
    }

    public void setUid(String uid) {
        this.uid = uid;
    }

    public String getPushToken() {
        return pushToken;
    }

    public void setPushToken(String pushToken) {
        this.pushToken = pushToken;
    }

    public String getJob() {
        return job;
    }

    public void setJob(String job) {
        this.job = job;
    }

    public String getComment() {
        return comment;
    }

    public void setComment(String comment) {
        this.comment = comment;
    }

    public boolean isCheckBox() {
        return checkBox;
    }

    public void setCheckBox(Boolean chechBox) {
        this.checkBox = chechBox;
    }
}




'''
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.Boolean.booleanValue()' on a null object reference
        at com.example.project.Model.User.isCheckBox(User.java:77)
        at com.example.project.Holder.AttendanceViewHolder$UserAdapter.onBindViewHolder(AttendanceViewHolder.java:80)
        at com.example.project.Holder.AttendanceViewHolder$UserAdapter.onBindViewHolder(AttendanceViewHolder.java:58)
        at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6937)
        at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6979)
        at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5896)
        at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6163)
        at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6002)
        at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5998)
        at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2226)
        at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1558)
        at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1518)
        at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:613)
        at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4033)
        at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3750)
        at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4303)
        at android.view.View.layout(View.java:21927)
        at android.view.ViewGroup.layout(ViewGroup.java:6260)
        at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
        at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
        at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
        at android.view.View.layout(View.java:21927)
        at android.view.ViewGroup.layout(ViewGroup.java:6260)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
        at android.view.View.layout(View.java:21927)
        at android.view.ViewGroup.layout(ViewGroup.java:6260)
        at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
        at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
        at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
        at android.view.View.layout(View.java:21927)
        at android.view.ViewGroup.layout(ViewGroup.java:6260)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
        at com.android.internal.policy.DecorView.onLayout(DecorView.java:779)
        at android.view.View.layout(View.java:21927)
        at android.view.ViewGroup.layout(ViewGroup.java:6260)
        at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3080)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2590)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1721)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7598)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:966)
        at android.view.Choreographer.doCallbacks(Choreographer.java:790)
        at android.view.Choreographer.doFrame(Choreographer.java:725)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:951)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
'''
public void onClick(View view) {
   userList.get(pos).setCheckBox(holder.attendance_checkBox.isChecked());
}
public void onClick(View view) {
    CheckBox attendance_checkBox = (CheckBox) view;
    User contact = (User) attendance_checkBox.getTag();

    contact.setCheckBox(attendance_checkBox.isChecked());
    userList.get(pos).setCheckBox(attendance_checkBox.isChecked());
}
UserAdapter userAdapter = new UserAdapter(MainActivity.this, userList);
recyclerView.setLayoutManager(new LinearLayoutManager(context));
recyclerView.setAdapter(userAdapter); 
public class UserAdapter extends RecyclerView.Adapter<UserAdapter.Holder> {

private Context mContext;
private List<User> userList;

public UserAdapter(Context mContext, List<User> userList) {
    this.mContext = mContext;
    this.userList = userList;
}

@Override
public Holder onCreateViewHolder(ViewGroup parent, int viewType) {
    View rowView = LayoutInflater.from(mContext).inflate(R.layout.item_attendance_bottom, parent, false);
    return new Holder(rowView);
}

@Override
public void onBindViewHolder(Holder holder, int position) {

    User userModel = userList.get(position);

    if (userModel.isCheckBox()) {
        holder.attendance_checkBox.setChecked(true);
    } else {
        holder.attendance_checkBox.setChecked(false);
    }

    /* further set date to textview*/

}

@Override
public int getItemCount() {
    return userList.size();
}

public class Holder extends RecyclerView.ViewHolder {

    public ImageView attendanceitem_imageview;
    private TextView attendanceitem_textview;
    public CheckBox attendance_checkBox;

    public Holder(View itemView) {
        super(itemView);

        attendanceitem_imageview = (ImageView) itemView.findViewById(R.id.attendanceitem_imageview);
        attendanceitem_textview = (TextView) itemView.findViewById(R.id.attendanceitem_textview);
        attendance_checkBox = (CheckBox) itemView.findViewById(R.id.attendance_checkBox);

        attendance_checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {

                int position = getAdapterPosition();

                User tmpUser = userList.get(getAdapterPosition());

                if (isChecked) {
                    tmpUser.setCheckBox(true);
                    notifyItemChanged(position);

                } else {
                    tmpUser.setCheckBox(false);
                    notifyItemChanged(position);
                }
            }
        });
    }
}
}