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

커스텀 액션바에 대한 질문입니다.

0 추천

액션바를 커스터마이징 하려고 하는데 setCustomView에 제가 만든 뷰를 집어 넣었더니 작동은 되지만 TextView에 글자가 들어가지 않습니다. 고수님들 확인 부탁 드려요~~ㅠㅠ

1. 먼저 ActionBar에 커스터마이징 할 View를 집어 넣어 줍니다.(CustomActionBar 클래스)

getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setDisplayShowCustomEnabled(true);
getActionBar().setCustomView(new CustomActionBar(this));
((CustomActionBar)getActionBar().getCustomView()).SetActionBarTitle(R.string.MainMenu);

 

2. CustomActionBar의 모습입니다.

public class CustomActionBar extends View {
	Context mContext = null;
	TextView action_bar_title = null;
	View view = null;

	public CustomActionBar(Context context) {
		// TODO Auto-generated constructor stub
		super(context);
		mContext = context;
		view = inflate(mContext, R.layout.action_bar_title_layout, null);
		action_bar_title = (TextView) view.findViewById(R.id.action_bar_title);
	}

	public void SetActionBarTitle(int resId) {
		action_bar_title.setText(resId);
	}

}

결과적으로 텍스트가 들어가 있어야 할 자리에 텍스트가 없어요...ㅠㅠ

으리으리 (300 포인트) 님이 2014년 8월 18일 질문

1개의 답변

0 추천
뷰의 생성자에서 findViewById로 child 뷰를 찾으면 당연히 null이 나옵니다.
익명사용자 님이 2014년 8월 18일 답변
View가 아닌 사용하는 Container를 상속받아서 Inflate 하니 잘 나오네요.. 감사합니다 ^^;; 굉장히 헤맬 뻔 했어요 ㅎㅎ
해결됐으면 채택을 해주시는게...
...