首页 > 解决方案 > 如何将值从适配器传递到另一个类

问题描述

我正在尝试从项目视图中获取开关状态

这是保存开关的布局文件,我想知道是否从另一个类检查开关

我想在适配器中执行此操作,并通过检查是否检查了开关或从类中获取布局并检查是否检查了开关,将值从适配器传递到另一个类

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="50dp">

    <TextView
        android:id="@+id/studentName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Student Name"
        android:textSize="25dp"/>

    <Switch
        android:id="@+id/attendanceSwitch"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_alignParentEnd="true"
        android:layout_marginEnd="25dp"
        android:checked="true"/>

</RelativeLayout>

这是我的适配器

public class StudentAdapter extends RecyclerView.Adapter<StudentAdapter.ViewHolder> {

    private Context context;
    private List<User> users;
    public StudentAdapter(Context context, List<User> users) {
        this.context = context;
        this.users = users;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.student_item, parent, false);
        return new StudentAdapter.ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
        final User user = users.get(position);


        holder.studentName.setText(user.getStudentname() + " " + user.getLastname());

    }

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

    public class ViewHolder extends RecyclerView.ViewHolder {
        public TextView studentName;
        public Switch aSwitch;

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

            studentName = itemView.findViewById(R.id.studentName);
            aSwitch = itemView.findViewById(R.id.attendanceSwitch);
        }
    }
}

标签: javaandroid

解决方案


使用 SharedPreferences

public SharedPreferences sharedpreferences = getSharedPreferences("mySharedPreferences", MODE_PRIVATE);
public SharedPreferences.Editor PrefsEditor = sharedpreferences.edit();

存储数据

PrefsEditor.putString("value", "MyString").apply();

获取数据

String value = sharedpreferences.getString("value", "");

推荐阅读