2014-01-25 2 views
0

주 Java 클래스에서 findViewById를 전역 적으로 사용하여 버튼과 같은 XML 요소에 대한 참조를 가져올 수 있습니까?글로벌 참조 findViewById

onCreate 메서드에서 호출 한 참조를 사용할 수 없기 때문에 계속 여러 번 호출해야하는 참조가 너무 많습니다.

private long mode; 
private final Button playBtn = (Button)findViewById(R.id.playBtn); 
private final TextView aboutTitle = (TextView)findViewById(R.id.aboutTitle); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
playBtn.setTypeface(robotoThin); 
aboutTitle.setText("hello world"); 
} 

나는 버튼과 된 setContentView 후 텍스트 뷰를 참조하는 것이 오류를 수정하는 것을 알고 있지만, 문제는 같은 클래스의 각 메소드에 대한 내 모든 참조를 반복 할 필요가 있다는 것입니다.

답변

1
// try this way (here i'm declare your both view object as globaly for your class so it can be acccess any where in classs and is created onCreate() at first time and further it used directly) 
private long mode; 
private Button playBtn; 
private TextView aboutTitle; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
playBtn = (Button)findViewById(R.id.playBtn); 
aboutTitle = (TextView)findViewById(R.id.aboutTitle); 
playBtn.setTypeface(robotoThin); 
aboutTitle.setText("hello world"); 
} 
+0

안녕하세요, 당신에게 도움이된다면, 안녕하세요, 당신이 할 수있는 upvote ans pls ... –

+0

미안하지만, 나는 그것이 upvote하는 데 필요한 15 명성을 못마땅 해. – dMehta

0

참조 할 Views에 대한 멤버 변수를 만들고 onCreate()에 한 번 초기화해야합니다. 그런 다음 내부에서 필요한 변수를 참조하십시오. Activity

+0

Emmanuel은 맞지만 작동하려면 클래스 멤버에서 최종 키워드를 제거해야합니다. – MobileSam