[英]How to pass value from adapter to another class
I am trying to get switch state from item view我正在尝试从项目视图中获取开关 state
this is the layout file which holds the switch and i wanted to get if switch is checked from another class这是包含开关的布局文件,我想知道是否从另一个 class 检查开关
i want to either do it in the adapter and to pass a value from the adapter to another class by checking if the switch is checked or get the layout from class and check if the switch is checked我想在适配器中执行此操作并将值从适配器传递到另一个 class 通过检查是否检查开关或从 class 获取布局并检查是否检查开关
<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>
and this is my adapter这是我的适配器
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);
}
}
}
use SharedPreferences使用 SharedPreferences
public SharedPreferences sharedpreferences = getSharedPreferences("mySharedPreferences", MODE_PRIVATE);
public SharedPreferences.Editor PrefsEditor = sharedpreferences.edit();
store data存储数据
PrefsEditor.putString("value", "MyString").apply();
get data获取数据
String value = sharedpreferences.getString("value", "");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.