EditView相比TextView来说多了输入功能,因此也就多了许多监听调用。
下面一个例子是第一行EditView输入名字内容,当失去焦点时,输入框颜色会变黑,再次获得焦点时,输入框先清空,等待输入。
package com.example.textview;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnFocusChangeListener;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private TextView textview1= null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textview1=(TextView)findViewById(R.id.et);
textview1.setOnFocusChangeListener(FocusChanger);
}
private OnFocusChangeListener FocusChanger=new OnFocusChangeListener() { // 监听焦点是否消失
@Override
public void onFocusChange(View v, boolean hasFocus) { // 第一个为控件,第二个参数为是否获得焦点
EditText clickEditText = (EditText)v;
String text=clickEditText.getText().toString().trim();
if(hasFocus){
clickEditText.setTextColor(Color.BLACK);
clickEditText.setText("");
Toast toast =Toast.makeText(getApplicationContext(), "请输入名字",Toast.LENGTH_SHORT );
toast.setGravity(0, 0, 900);
toast.show();
}
else
{
if(text.length()>0&&text.equals("请输入您的名字")==false)
{
clickEditText.setTextColor(Color.BLACK);
clickEditText.setText(text);
}
else
{
clickEditText.setText("请输入您的名字");
clickEditText.setTextColor(Color.GRAY);
}
}
}
};
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${relativePackage}.${activityClass}" >
<EditText
android:id="@+id/et"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:ems="10"
android:maxLength="10"
android:text="请输入您的名字"
android:textColor="#DDDDDD" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/et2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/et"
android:ems="10"
android:text="点击转换焦点" />
</RelativeLayout>