제가 상속받은 View를
Customview.java 에서 뿌려주려고 합니다.
제가 예상하기론 mycustomTetview.java 의 레이아웃속 글과 이미지가 떠야하는데...
뜨지를 않네요... 검은화면만 뜨고요..
궁금해서 그러는데.. 왜 그런건가요?
뭘 잘못 코딩한걸까요?
==========================================================
package com.example;
import android.app.Activity;
import android.os.Bundle;
public class Customview extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mycustomTextview cv = new mycustomTextview(this);
setContentView(cv);
}
}
==========================================================
package com.example;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
public class mycustomTextview extends View {
public mycustomTextview(Context context) {
super(context);
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View mView = inflater.inflate(R.layout.cutomviewxml, null);
}
}
==========================================================
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="408dp"
android:layout_height="wrap_content"
android:layout_weight="0.88"
android:src="@drawable/ic_launcher" />
</LinearLayout>
많은 방법이 있겠지만 제가 생각하는 가장 간단한 방법은
setContentView(R.layout.cutomviewxml);와 같이 하고,
cutomviewxml 안에 원하는 뷰를 모두 넣어두고, visible 속성만 조정하면 되죠.
음... 넘겨줘서 처리하게 바꿔버렸습니다.
답글 감사드립니다 ^^
public class Customview extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LayoutInflater controlInflater = LayoutInflater.from(getBaseContext());
View weatherview = controlInflater.inflate(R.layout.cutomviewxml, null);
mycustomTextview mView = new mycustomTextview(this, weatherview);
setContentView(weatherview);
}
}
public class mycustomTextview extends View {
public mycustomTextview(Context context, View view) {
super(context);
TextView tv = (TextView)view.findViewById(R.id.textView1);
tv.setText("테스트 성공!");
}
}




<View /> 와 같은 layout을 setContentVIew에 넣었다고 보시면 됩니다.
당연히 아무것도 안나오죠.
mycustomTextview가 LinearLayout을 상속하고, TextView와 ImageView를 add 하면 원하시는 것처럼 될겁니다.
근데 왜 이렇게 해야되는지 이해가 안되는군요;;