从其他活动获取一些存储值后,更改特定的列表视图项背景颜色

时间:2017-06-02 10:13:07

标签: android listview background-color listviewitem

  

我的问题:更改后的特定列表视图项背景颜色   从其他活动中获取一些储值。

详细信息:

我有一个自定义列表视图,它有三个文本视图和一个小图像。

第一个文本视图包含教师的名称,第二个包含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活动回到这个活动时,什么都没发生。

我在哪里做错了什么?

0 个答案:

没有答案