package com.paad.views;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
/**
* Listing 4-13: Constructing a compound View
*/
public class ClearableEditText extends LinearLayout {
public ClearableEditText(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
EditText editText;
Button clearButton;
public ClearableEditText(Context context) {
super(context);
init();
}
private void init() {
// Inflate the view from the layout resource.
String infService = Context.LAYOUT_INFLATER_SERVICE;
LayoutInflater li;
li = (LayoutInflater) getContext().getSystemService(infService);
li.inflate(R.layout.clearable_edit_text, this, true);
// Get references to the child controls.
editText = (EditText) findViewById(R.id.editText);
clearButton = (Button) findViewById(R.id.clearButton);
// Hook up the functionality
hookupButton();
}
/**
* Listing 4-14: Implementing the Clear Text Button
*/
private void hookupButton() {
clearButton.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
editText.setText("");
}
});
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<!-- <TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" /> -->
<com.paad.views.ClearableEditText
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
package com.paad.views.another;
import android.content.Context;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
public class ClearableEditText extends LinearLayout {
EditText editText;
Button clearButton;
public ClearableEditText(Context context) {
super(context);
init();
}
private void init() {
setOrientation(LinearLayout.VERTICAL);
editText = new EditText(getContext());
clearButton = new Button(getContext());
int lHeight = LinearLayout.LayoutParams.WRAP_CONTENT;
int lWidth = LinearLayout.LayoutParams.MATCH_PARENT;
addView(editText, lWidth, lHeight);
addView(clearButton, lWidth, lHeight);
hookupButton();
}
private void hookupButton() {
clearButton.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
editText.setText("");
}
});
}
}