나는 android 배우기 시작하고 질문이 있습니다. 내가 XML에서 필드를 받으면 내가 수행findViewById 중복 없음
import android.widget.RatingBar;
public class TestActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
RatingBar rate = (RatingBar) findViewById(R.id.ratebar1);
rate.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
public void onRatingChanged(RatingBar ratingBar, float rating,
boolean fromTouch) {
((TextView)findViewById(R.id.rating_text)).setText("Rating: "+ (int)rating);
}
});
final Button test = (Button) findViewById(R.id.Button123);
test.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
RatingBar rate = (RatingBar) findViewById(R.id.ratebar1);
rate.setRating(2);
}
}
);
});
}
확인 작업을하지만, 왜 내가 할 수없는이 :
import android.widget.RatingBar;
public class TestActivity extends Activity {
RatingBar rate = (RatingBar) findViewById(R.id.ratebar1); //here!!!
protected void onCreate(Bundle savedInstanceState) {
//remove!!
rate.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
public void onRatingChanged(RatingBar ratingBar, float rating,
boolean fromTouch) {
((TextView)findViewById(R.id.rating_text)).setText("Rating: "+ (int)rating);
}
});
final Button test = (Button) findViewById(R.id.Button123);
test.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//remove!!
rate.setRating(2);
}
}
);
});
}
하거나이 초기화 예를 들어 기능? 어떻게 만들 수 있습니까?
에서 OnCreate 당신이 같이 findViewById (컨텍스트 기능)을 사용할 수 있도록 처리하는 적절한 컨텍스트를 제공과 같은 코드를 사용합니다. onCreate를 시작하기 전에 리소스에 대한 컨텍스트 링크가 없습니다. – zgc7009
@siger 정답을 선택하십시오. – Simas
또한 onCreate 함수에 @Override를 추가하고 onRatingChanged 함수에서 사용할 수 없으므로 rating_text를 클래스 멤버로 사용합니다 (아래 답변 참조). –