안드로이드 개발 질문/답변
(글 수 45,052)
이미지를 보여주는 부분을 클래스로 작성하였습니다.
레이아웃은 RelativeLayout에 Image Button 2개로 구성되어 있습니다.
이 클래스에는 애니메이션 기능이 추가되어 있습니다.
버튼을 눌렀을 때 애니메이션 기능이 작동합니다.
adbar.xml, adbar.java로 지정했습니다.
그리고 이제 main.java에
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.adbar = new AdBar(this.getBaseContext());
이렇게 선언했습니다.
하지만 adbar의 리소스들(이미지 파일)이 나타나지 않는 것입니다.
그리고 클릭리스너조차 안됩니다....
adbar.java에서는 다음과 같이 컨트롤들을 find합니다.
public AdBar(Context context)//, RelativeLayout relativelayout)
{
searchEditText = new EditText(context);
//layout = relativelayout;
this.m_Inflater = LayoutInflater.from(context);
//생성 실패.
if(this.m_Inflater == null)
return;
//Layout ID 로 해당 컨으롤을 찾을 수가 있다.
this.m_Controls = m_Inflater.inflate(R.layout.adbar, null);
if(RuntimeConfig.IS_DEBUG_MODE)
{
searchImgBtn = (ImageButton)this.m_Controls.findViewById(R.id.searchButton);
searchImgBtn.setOnClickListener(this);
main에 adbar를 add시켜야 하는건지... 조언 부탁드립니다. ^^
레이아웃은 RelativeLayout에 Image Button 2개로 구성되어 있습니다.
이 클래스에는 애니메이션 기능이 추가되어 있습니다.
버튼을 눌렀을 때 애니메이션 기능이 작동합니다.
adbar.xml, adbar.java로 지정했습니다.
그리고 이제 main.java에
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.adbar = new AdBar(this.getBaseContext());
이렇게 선언했습니다.
하지만 adbar의 리소스들(이미지 파일)이 나타나지 않는 것입니다.
그리고 클릭리스너조차 안됩니다....
adbar.java에서는 다음과 같이 컨트롤들을 find합니다.
public AdBar(Context context)//, RelativeLayout relativelayout)
{
searchEditText = new EditText(context);
//layout = relativelayout;
this.m_Inflater = LayoutInflater.from(context);
//생성 실패.
if(this.m_Inflater == null)
return;
//Layout ID 로 해당 컨으롤을 찾을 수가 있다.
this.m_Controls = m_Inflater.inflate(R.layout.adbar, null);
if(RuntimeConfig.IS_DEBUG_MODE)
{
searchImgBtn = (ImageButton)this.m_Controls.findViewById(R.id.searchButton);
searchImgBtn.setOnClickListener(this);
main에 adbar를 add시켜야 하는건지... 조언 부탁드립니다. ^^
2009.12.14 21:43:27
main.xml에 어떤 레이아웃이 있다면. (linear layout, relative layout) 해당 레이아웃을 가져와서 .addView를 해줘야겠죠. 현재 그냥 생성만 해놓고 아무것도 연결시키지를 안은건가요?
2009.12.15 11:55:38
LinearLayout main = (LinearLayout)this.findViewById(R.id.adBarMainLayout);
View vv = View.inflate(main.this, R.layout.adbar, null);
RelativeLayout.LayoutParams lp =
new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
main.addView(vv, lp);
위 처럼 main.java에 코딩을 했는데... 결과는 동일합니다....
당연한 결과이겠지요...
View vv = View.inflate(main.this, R.layout.adbar, null);
RelativeLayout.LayoutParams lp =
new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
main.addView(vv, lp);
위 처럼 main.java에 코딩을 했는데... 결과는 동일합니다....
당연한 결과이겠지요...
2009.12.15 16:48:42
private AdBar adbar;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//main 레이아웃을 adbar 레이아웃을 추가시킨다.
LinearLayout mainLayout = (LinearLayout)this.findViewById(R.id.adBarMainLayout);
View vv = View.inflate(main.this, R.layout.adbar, null);
RelativeLayout.LayoutParams Rp =
new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
mainLayout.addView(vv, Rp);//==addContentView(vv, Rp);
adbar = new AdBar(this.getBaseContext(), vv);
위와 같이 AdBar생성자에 View를 넘겨주니 해결이 되었습니다. ^^
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//main 레이아웃을 adbar 레이아웃을 추가시킨다.
LinearLayout mainLayout = (LinearLayout)this.findViewById(R.id.adBarMainLayout);
View vv = View.inflate(main.this, R.layout.adbar, null);
RelativeLayout.LayoutParams Rp =
new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
mainLayout.addView(vv, Rp);//==addContentView(vv, Rp);
adbar = new AdBar(this.getBaseContext(), vv);
위와 같이 AdBar생성자에 View를 넘겨주니 해결이 되었습니다. ^^