티스토리 뷰
원하는 위젯을 만들고 재사용성을 높이자~
- 커스텀 위젯 레이아웃 XML 정의
- 커스텀 위젯 재정의
- XML 레이아웃에 커스텀 위젯 포함시키기
- 액티비티 실행시키기
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 레이아웃에 커스텀 위젯 포함시키기
댓글