概括地说,这个函数从TextView值中提取数据。然后将其转换为双精度型,然后执行if语句,该语句标识哪个值高于另一个值。
更新代码:
public void getCurrentData();
TextView user = (TextView) getView().findViewById(R.id.global_text_username);
String username = getActivity().getIntent().getStringExtra("email");
String userId = username.substring(0, 5);
user.setText(username);
Drawable unreach = getResources().getDrawable(R.drawable.baseline_remove_circle_24, null);
TextView user_current_cals = (TextView) getView().findViewById(R.id.home_text_calcode);
TextView user_current_steps = (TextView) getView().findViewById(R.id.home_text_stepcode);
TextView user_current_target = (TextView) getView().findViewById(R.id.home_text_targetcode);
ImageView current_cals = (ImageView) getView().findViewById(R.id.home_img_calstatus);
ImageView current_target = (ImageView) getView().findViewById(R.id.home_img_targetstatus);
ImageView current_steps = (ImageView) getView().findViewById(R.id.home_img_stepstatus);
问题就出在这里。虽然代码运行时没有任何错误,但第二个if语句不起作用。
String ucc = user_current_cals.getText().toString();
double check_current_cals = Double.parseDouble(ucc);
String uct = user_current_target.getText().toString();
double check_current_target = Double.parseDouble(uct);
String ucs = user_current_steps.getText().toString();
int check_current_steps = Integer.parseInt(ucs);
if (check_current_steps < 1000) {
current_steps.setColorFilter(Color.argb(255, 244, 57, 57));
current_steps.setImageDrawable(unreach);
}
if (check_current_cals < check_current_target) {
current_cals.setColorFilter(Color.argb(255, 244, 57, 57));
current_target.setColorFilter(Color.argb(255, 244, 57, 57));
current_cals.setImageDrawable(unreach);
current_target.setImageDrawable(unreach);
}
我很困惑,因为什么是不正确的与此声明和任何帮助,并指出我在正确的方向将不胜感激。谢谢
我已经尝试将所有数字转换为整数,并再次执行int语句,但无济于事。
2条答案
按热度按时间d8tt03nd1#
您可能需要从textview获取文本。
这是你的代码:
注意,您使用的是TextView对象的valueOf
user_current_steps
。您需要向它请求实际文本:然后你很可能会忽略
String.valueOf
部分,因为它已经返回了一个字符串:4dc9hkyq2#
答:更新我的问题。结果是,它试图过早地检索值,这导致if语句试图执行(0 < 0)语句。
之前:
之后:
谢谢你的帮助