今天介绍下android中的焦点事件,之前在项目有用到过。这块不是很难,大家跟着过一遍吧,用到的时候直接把我下面这段代码拷贝过去就ok了。
1.建一个工程,名为TestFocus。
2.在布局文件中,主要有2个文本输入组件和一个文本显示组件。如下。
3.接下来,就是今天的核心知识,大家请注意,焦点事件,OnFocusChangeListener。直接贴代码了。
package org.focus.cn;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.widget.EditText;
import android.widget.TextView;
/**
* 2012-03-15
* @author song
* QQ:876245986
*/
public class FocusActivity extends Activity {
private EditText edit,edit2;
private TextView text;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.edit = (EditText) super.findViewById(R.id.edit);
this.edit2= (EditText) super.findViewById(R.id.edit2);
this.text = (TextView) super.findViewById(R.id.txt);
this.edit.setOnFocusChangeListener(new OnFocusChangeListenerimp());
this.edit.setOnClickListener(new OnClickListenerimp());
}
private class OnClickListenerimp implements OnClickListener{
@Override
public void onClick(View v) {
FocusActivity.this.edit.setText(""); //清空数据
}
}
//焦点事件
private class OnFocusChangeListenerimp implements OnFocusChangeListener{
@Override
public void onFocusChange(View v, boolean hasFocus) { //hasFocus表示是否获得焦点
if(hasFocus)
{
FocusActivity.this.text.setText("获得焦点!");
}else{
if(FocusActivity.this.text.length()>1)
{
FocusActivity.this.text.setText("文本输入组件,失去焦点,数据合法。");
}else{
FocusActivity.this.text.setText("文本输入组件,失去焦点,请输入数据!");
}
}
}
}
}
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.widget.EditText;
import android.widget.TextView;
/**
* 2012-03-15
* @author song
* QQ:876245986
*/
public class FocusActivity extends Activity {
private EditText edit,edit2;
private TextView text;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.edit = (EditText) super.findViewById(R.id.edit);
this.edit2= (EditText) super.findViewById(R.id.edit2);
this.text = (TextView) super.findViewById(R.id.txt);
this.edit.setOnFocusChangeListener(new OnFocusChangeListenerimp());
this.edit.setOnClickListener(new OnClickListenerimp());
}
private class OnClickListenerimp implements OnClickListener{
@Override
public void onClick(View v) {
FocusActivity.this.edit.setText(""); //清空数据
}
}
//焦点事件
private class OnFocusChangeListenerimp implements OnFocusChangeListener{
@Override
public void onFocusChange(View v, boolean hasFocus) { //hasFocus表示是否获得焦点
if(hasFocus)
{
FocusActivity.this.text.setText("获得焦点!");
}else{
if(FocusActivity.this.text.length()>1)
{
FocusActivity.this.text.setText("文本输入组件,失去焦点,数据合法。");
}else{
FocusActivity.this.text.setText("文本输入组件,失去焦点,请输入数据!");
}
}
}
}
}