2015-01-01 2 views
-1

나는 안드로이드를 처음 접했고, 나는 내 발가락을 담그고있다. 숫자 선택 도구를 사용하여 텍스트의 색을 정의하고 싶습니다. 지금까지 번호 선택 도구에 대한 코드입니다.숫자 선택기로 안드로이드 텍스트 뷰 컬러 변경 정수

package nathan.nathan; 

import android.support.v7.app.ActionBarActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.NumberPicker; 
import android.widget.TextView; 

public class MainActivity extends ActionBarActivity { 
    TextView numberView; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     numberView = (TextView)findViewById(R.id.numberview); 
     NumberPicker numberPicker = (NumberPicker) findViewById(R.id.numberPicker); 
     numberPicker.setMaxValue(100); 
    numberPicker.setMinValue(0); 
    numberPicker.setWrapSelectorWheel(true); 
    numberPicker.setOnValueChangedListener(new NumberPicker. 
      OnValueChangeListener() { 
     @Override 
     public void onValueChange(NumberPicker picker, int 
       oldVal, int newVal) { 
      numberView.setText("I am "+ 
        newVal); 
     } 

    }); 
    } 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 
} 

나는 무엇을 해야할지 혼란 스럽다. 도움을 많이 주시면 감사하겠습니다! :)

답변

0

그것은 당신이 색상에 0에서 100까지 당신의 정수를 매핑 할 방법을 당신에게 달려 있지만, 여기 한 가지 방법이다 :

numberPicker.setOnValueChangedListener(
    new NumberPicker.OnValueChangeListener() { 
    @Override 
    public void onValueChange(NumberPicker picker, int oldVal, int newVal) { 
     numberView.setText("I am " + newVal); 

     int color; 
     if (newVal < 30) { 
      color = Color.parseColor("#ff0000"); 
     } else if (newVal < 60) { 
      color = Color.parseColor("#00ff00"); 
     } else { 
      color = Color.parseColor("#0000ff"); 
     } 
     numberView.setTextColor(color); 
    } 
}); 

TextView.setTextColor() 설명서를 참조하십시오가.

+0

정말 고마워요! 불평하고 싶지는 않지만 색상 값을 자동으로 변경하는 방법이 있습니까? – NathanAD

+0

괜찮습니다. "자동"이란 무엇을 의미합니까? 'NumberPicker.OnValueChangeListener'를 사용하면 숫자가 바뀔 때마다 onValueChange()가 호출되어 색상이 바뀝니다. – Spencer

+0

내가 쓰고 싶은 모든 색을 쓸 필요가 없다. – NathanAD