티스토리 뷰






원하는 위젯을 만들고 재사용성을 높이자~

  1. 커스텀 위젯 레이아웃 XML 정의
  2. 커스텀 위젯 재정의
  3. XML 레이아웃에 커스텀 위젯 포함시키기
  4. 액티비티 실행시키기

1. 커스텀 뷰 레이아웃 XML 정의




	
	
	
		
	

2. 커스텀 위젯 재정의

package test.sample.view;

import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import fss.dart.R;

public class TestView extends LinearLayout  implements View.OnClickListener{
	
	private static final String TAG ="TestView";
	Context context ;
	View view;

	
	public TestView(Context context) {
		super(context);
		   LayoutInflater layoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		   view=layoutInflater.inflate(R.layout.testview,this);
                           // this 대신 null 로 표기하면 뷰가 그려지지 않음                           
	}
	public TestView(Context context, AttributeSet attrs) {
		super(context, attrs);

		init(context);
	}
	
	private void init(Context context){
		this.context = context ;
		Log.i(TAG, "init");
		LayoutInflater layoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		view=layoutInflater.inflate(R.layout.testview,this);

		view.findViewById(R.id.tBnt).setOnClickListener(this);


	}
		
	public void onClick(View v) {
		switch(v.getId()){
		case R.id.tBnt :
			Toast.makeText(getContext(), "click tBnt", Toast.LENGTH_LONG).show();
			break;

		}
		
		
	}	
}

3. XML 레이아웃에 커스텀 위젯 포함시키기




       
 

댓글