分类: 系统运维
2012-02-11 14:36:09
用户可以使用View.OnclickListener接口进行单击处理类的编写。
里面的onClick()方法表示的是单击组件之后执行的 方法体,而传入的是一个操作此方法的组件对象,因为所有的组件都是View的子类
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="输入姓名" />
android:id="@+id/mybut"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="显示输入信息" />
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="输入的信息是:" />
上面只是将输入的数据直接进行显示
下面在 activity中定义操作事件
package com.fish.demo;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class ClickProjectActivity extends Activity
{
private EditText edit = null;
private Button but = null;
private TextView showView = null;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.but = (Button) super.findViewById(R.id.mybut);// 取得按钮
this.edit = (EditText) super.findViewById(R.id.myed);
this.showView = (TextView) super.findViewById(R.id.mytext);
this.but.setOnClickListener(new ShowListener());// 设置事件
}
private class ShowListener implements OnClickListener
{
public void onClick(View v)
{
String info = ClickProjectActivity.this.edit.getText().toString();//取得输入内容
ClickProjectActivity.this.showView.setText("输入的内容是:"+info);//更新文本显示组件内容
}
}
}
可知在此程序中专门定义了一个单击事件处理类,但是如果这个子类只使用一次的话,那么肯定没有必须将其单独定义一个类,可以使用匿名类的方式完成:
package com.fish.demo;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class ClickProjectActivity extends Activity
{
private EditText edit = null;
private Button but = null;
private TextView showView = null;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.but = (Button) super.findViewById(R.id.mybut);// 取得按钮
this.edit = (EditText) super.findViewById(R.id.myed);
this.showView = (TextView) super.findViewById(R.id.mytext);
this.but.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
String info = ClickProjectActivity.this.edit.getText()
.toString();// 取得输入内容
ClickProjectActivity.this.showView.setText("输入的内容是:" + info);// 更新文本显示组件内容
}
})// 设置事件
}
现在整个事件处理都在匿名内部类中完成。