我有一个带有三个TextView的自定义列表视图。每一行都会显示人名,电子邮件和日期。现在我想设置一个人的天数小于120的红色,我也想设置一个绿色,哪个人的天数大于120.如何解决我的问题??任何帮助将不胜感激。
person_show
public class person_show extends Activity
{
static int total_day;
List<personInfo>PersonInfo;
public MyAdapter adapter;
static Vector<String>email = new Vector<>();
static Vector<String>name = new Vector<>();
static Vector<String>city = new Vector<>();
static String[] Name,Email,City;
ListView list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.personlistview);
Firebase.setAndroidContext(this);
//show_person();
Person_Show();
}
private void Person_Show()
{
PersonInfo = new ArrayList<>();
list = (ListView)findViewById(R.id.list);
String[] value = new String[]{" No Data Found"};
ArrayAdapter<String> Adapter = new ArrayAdapter<String>(this,R.layout.persontextview,value);
list.setAdapter(Adapter);
PersonInfo.add(new personInfo("abc","abc@gmail.com","65 days"));
PersonInfo.add(new personInfo("xyz","xyz@gmail.com","130 days"));
PersonInfo.add(new personInfo("pqr","pqr@gmail.com","70 days"));
PersonInfo.add(new personInfo("ABC","ABC@gmail.com","140 days"));
for(int i = 0;i<email.size();i++)
PersonInfo.add(new personInfo(name.get(i),email.get(i),"150 days"));
adapter = new MyAdapter(this,PersonInfo);
list.setAdapter(adapter);
}
MyAdapter
public class MyAdapter extends BaseAdapter
{
List<personInfo>PersonInfo;
Context context;
public MyAdapter(Context context,List<personInfo>personInfo)
{
this.context = context;
this.PersonInfo = personInfo;
}
@Override
public int getCount() {
return PersonInfo.size();
}
@Override
public Object getItem(int position) {
return PersonInfo.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.person_layout,parent,false);
TextView txt_name,txt_email,txt_phone;
txt_name = (TextView)view.findViewById(R.id.t_name);
txt_email = (TextView)view.findViewById(R.id.t_email);
txt_phone = (TextView)view.findViewById(R.id.t_phone);
txt_name.setText(PersonInfo.get(position).getName());
txt_email.setText(PersonInfo.get(position).getEmail());
txt_phone.setText(PersonInfo.get(position).getPhone());
return view;
}
}
personInfo
public class personInfo
{
String name,phone,email;
public personInfo(String name,String email,String phone)
{
this.name = name ;
this.email = email;
this.phone = phone;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
答案 0 :(得分:0)
如果您使用RecyclerView
,请在适配器或查看持有人中添加此代码 if(yourObject.days>120){
rootLayout.setBackgroundColor(ContextCompat.getColor(mContext, R.color.green));
}else{
rootLayout.setBackgroundColor(ContextCompat.getColor(mContext, R.color.red));
}
答案 1 :(得分:0)
显示适配器代码。首先检查 days
。 days
没有天。 days
应为 int
类型。
检查 LOGIC
。
String[] splited = PersonInfo.get(position).getPhone().split("\\s+"); //65 days
String str_Days=splited[0]; //65
int days = Integer.valueOf(str_Days);
if (days<=120)
{
Your_LayoutOBJ.setBackgroundColor(Color.parseColor("#54D66A"));
}
else
{
Your_LayoutOBJ.setBackgroundColor(Color.parseColor("#FFFFFF"));
}
<强> FYI 强>
Your_LayoutOBJ
是您的RootLayout。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/rootLayout"
>
.....
</RelativeLayout>
声明 LIKE Textview and Set background color
。