我的问题:更改后的特定列表视图项背景颜色 从其他活动中获取一些储值。
详细信息:
我有一个自定义列表视图,它有三个文本视图和一个小图像。
第一个文本视图包含教师的名称,第二个包含cnic no,第三个包含个人编号
现在获取少量记录后,这些记录将保存在我的列表视图中。让我们假设我得到三个教师记录,我的列表视图现在显示三个不同的列表项。
我正在尝试做什么:
现在我正在做的是每当我点击任何列表视图项时,它会向我显示名为“Mark Attendance”的新活动,并且在该活动中有三个单选按钮,第一个存在,然后不存在然后转出。现在我想要的是,当我点击任何这些单选按钮时,应该存储特定的单选按钮值,并且活动应该将该存储的值传递给我之前的活动,并且该列表项的颜色应该改变。
即如果我在Mark Attendance活动中选择了'present',则应存储当前值,并且单击的列表项颜色会将其背景颜色更改为白色或绿色。
这就是我正在做的事情,但在存储价值后没有任何反应。
这是MarkAttendance类,点击保存按钮后,应存储单选按钮值。
我的代码:
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (radioGroup.getCheckedRadioButtonId() == R.id.one)
{
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(MarkAttendance.this);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("datapresent", "present");
editor.commit();
Log.e("value", "datapresent");
finish();
}
else if (radioGroup.getCheckedRadioButtonId() == R.id.two)
{
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(MarkAttendance.this);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("dataabsent", "absent");
editor.commit();
Log.e("value", "dataabssent");
finish();
}
else if (radioGroup.getCheckedRadioButtonId() == R.id.three )
{
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(MarkAttendance.this);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("datatransfer", "transferout");
editor.commit();
Log.e("value", "datatransfer");
finish();
}
这就是我在之前的活动OnResume方法中所做的事情
@Override
protected void onResume() {
super.onResume();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(TeacherPresence.this);
String present = prefs.getString("datapresent", "");
String absent = prefs.getString("dataabsent", "");
String transfer = prefs.getString("datatransfer", "");
/*String present = getIntent().getExtras().getString("datapresent");
String absent = getIntent().getExtras().getString("dataabsent");
String transfer = getIntent().getExtras().getString("datatransfer");*/
if (present.equals("present")) {
listcontent.setBackgroundColor(Color.WHITE);
}
else if (absent.equals("absent")) {
listcontent.setBackgroundColor(Color.RED);
}
else if (transfer.equals("transferout")) {
listcontent.setBackgroundColor(Color.GRAY);
}
但是当我从MarkAttendance活动回到这个活动时,什么都没发生。
我在哪里做错了什么?