以SayHello为例演示事件处理的三种方式

来源:互联网 发布:北京国税报税软件 编辑:程序博客网 时间:2024/06/04 19:56

页面效果图:

页面设计:

创建一个Activity,在Activity中添加控件并进行事件处理

activity_main.xml:

<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"    android:background="@drawable/bg" >    <TextView        android:id="@+id/nameinput"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerHorizontal="true"        android:layout_marginTop="90dp"        android:padding="@dimen/padding_medium"        android:text="@string/nameInput" />    <EditText        android:id="@+id/name"        android:layout_centerHorizontal="true"        android:layout_width="200dip"        android:layout_height="wrap_content"        android:layout_below="@id/nameinput"        android:inputType="text" />    <Button        android:id="@+id/clickButton"        android:layout_centerHorizontal="true"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@id/name"        android:text="@string/clickbutton" /></RelativeLayout>

string.xml:

<resources>    <string name="app_name">打招呼</string>    <string name="nameInput">请输入你的姓名</string>    <string name="menu_settings">Settings</string>    <string name="title_activity_main">打招呼</string>    <string name="clickbutton">请点击我</string></resources>



方法1:

public class MainActivity extends Activity {private Button clickButton;    private EditText nameText;
    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);               setContentView(R.layout.activity_main);        initialComponents();         //绑定事件源和事件处理者        clickButton.setOnClickListener(new ClickHandler());            }
    //编写有能力处理按钮点击事件类    private  class ClickHandler implements OnClickListener{@Overridepublic void onClick(View v) {String name=nameText.getText().toString();Toast.makeText(MainActivity.this, "你好"+name, Toast.LENGTH_LONG).show();}        }
        private void initialComponents(){    clickButton=(Button) this.findViewById(R.id.clickButton);        nameText=(EditText) findViewById(R.id.name);    }
    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.activity_main, menu);        return true;    }    }


 

方法2:

主要代码:

initialComponents();         //绑定事件源和事件处理者         //clickButton.setOnClickListener(new ClickHandler());匿名对象         clickButton.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {String name=nameText.getText().toString();Toast.makeText(MainActivity.this, "你好"+name, Toast.LENGTH_LONG).show();}                });


 

方法3:

主要代码:

public class MainActivity extends Activity {    private EditText nameText;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initialComponents();     }        public void clickHandler(View view){    String name=nameText.getText().toString();Toast.makeText(MainActivity.this, "你好"+name, Toast.LENGTH_LONG).show();    }    private void initialComponents(){        nameText=(EditText) findViewById(R.id.name);    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.activity_main, menu);        return true;    }    }


 

原创粉丝点击