마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

온라인 db에서 가져온 값을 기준으로 색을 바꾸고 싶은데 어떻게 가능할까요?

0 추천
온라인 db에서 co2농도를 확인해서 앱으로 가져오는것까지는 성공했는데

이 값을 기준으로 co2농도 높음, 중간, 낮음을 색깔별로 업데이트 시키려고 하거든요.

이때 어떤 이벤트나 액티비티를 써야하는지 모르겠어요. 도와주시면 감사하겠습니다
익명사용자 님이 2017년 12월 2일 질문

1개의 답변

0 추천
 
채택된 답변
1. 범위 지정 변수 2개를 만든다. min c02, max co2

 

2. 받아온 co2 값을 범위 어디에 속해있는지 if else문으로 구한다.

 

3. 속해있는 제어문 별로 textview의 text 값의 색을 변경해준다.

위에 질문으로 보면 위의 내용이 되는것 같은데 맞는지요..

ex) int minValue = 30, maxValue = 50;

if( 받아온 co2 < minValue) { // 낮음
  

  TextView co2 = (TextView) findViewById(R.id.co2);

co2..setTextColdr(getResources().getColor(R.color.R.color.ff0000);  // color.xml에 ff0000이 등록되어있어야함

} ekse if( minValue <= co2 && co2 < maxValue) { // 중간

  TextView co2 = (TextView) findViewById(R.id.co2);

co2..setTextColdr(getResources().getColor(R.color.R.color.00ff00); // color.xml에 00ff00이 등록되어있어야함

} else if( co2 > maxValue) {// 높음

 

TextView co2 = (TextView) findViewById(R.id.co2);

co2..setTextColdr(getResources().getColor(R.color.R.color.0000ff); // color.xml에 0000ff이 등록되어있어야함

}
우쭈쭈 (540 포인트) 님이 2017년 12월 2일 답변
크흑,,,감사합니다 SENSEI.....
근데 죄송한데 textview 를 int값으로 못바꾸면 값비교 자체가 안될것같은데
이부분은 어찌 해결하나요?
String 변수를 Int로 치환하여 계산후 계산된 값을 다시 String 으로 형변환 하면 됩니다.

예) TextView co2 = (TextView) findViewById(R.id.co2);
int nCo2 = Integer.parseInt(co2.getText().toString());  // 텍스트뷰의 값을 int로 변환

nCo2와 minValue 혹은 maxValue랑 비교하면 되구요.

co2.setText(Integer.toString(nCo2)); // int형 변수를 String으로 형변환후 co2 에 뿌림.

int => String 으로 형변환 하는함수는 Integer.toString( int형 변수 );
String => int 로 형변환 하는 함수는 Integer.parseInt( String형 변수 );

입니다.
...