通过设计一个登录对话框掌握android系统的事件监听的几种处理方法。
具体要求如下(四种方法实现):
i. 基于事件监听内部类实现事件监听处理;
ii. 基于事件监听内部匿名类实现事件监听处理;
iii. Activity本身作为事件监听器;
iv. 直接绑定到标签;
v. 在“登录”按钮事件代码中,判断用户名和密码是否正确。
布局文件:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
tools:context="com.example.ex4_15linearlayoutloginwindows.MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Please input your name!" />
<EditText
android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Please input your password" />
<EditText
android:id="@+id/password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPassword" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="login" />
<Button
android:id="@+id/cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="cancel" />
</LinearLayout>
</LinearLayout>
(1)内部类监听事件:
package com.example.project1;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
Button button;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button)findViewById(R.id.login);
button.setOnClickListener(new myclick());
}
public class myclick implements View.OnClickListener{
public void onClick(View v) {
EditText t1 = (EditText) findViewById(R.id.username);
EditText t2 = (EditText) findViewById(R.id.password);
String s1 = t1.getText().toString();
String s2 = t2.getText().toString();
TextView tv = (TextView) findViewById(R.id.textView3);
if(s1.equals("zhangjiangtao")&&s2.equals("111111"))
tv.setText("login success");
else
tv.setText("login fail");
}
}
}
(2)Activity本身作为事件监听器
package com.example.project1;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity implements View.OnClickListener{
Button button;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button)findViewById(R.id.login);
button.setOnClickListener((OnClickListener) this);
}
public void onClick(View v) {
EditText t1=(EditText) findViewById(R.id.username);
EditText t2=(EditText) findViewById(R.id.password);
String s1=t1.getText().toString();
String s2=t2.getText().toString();
TextView tv=(TextView) findViewById(R.id.textView3);
if(s1.equals("zhangjiangtao")&&s2.equals("111111"))
tv.setText("login success");
else
tv.setText("login fail");
}
}
(3)基于事件监听内部匿名类实现事件监听处理
package com.example.project1;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
Button button;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button)findViewById(R.id.login);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
EditText t1=(EditText) findViewById(R.id.username);
EditText t2=(EditText) findViewById(R.id.password);
String s1=t1.getText().toString();
String s2=t2.getText().toString();
TextView tv=(TextView) findViewById(R.id.textView3);
if(s1.equals("zhangjiangtao")&&s2.equals("111111"))
tv.setText("login success");
else
tv.setText("login fail");
}
});
}
}
(4)直接绑定到标签
布局文件:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
tools:context="com.example.ex4_15linearlayoutloginwindows.MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Please input your name!" />
<EditText
android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Please input your password" />
<EditText
android:id="@+id/password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPassword" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="login"
android:onClick="Text" />//就是在原来的基础上加上了这句话
<Button
android:id="@+id/cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="cancel" />
</LinearLayout>
</LinearLayout>
JAVA文件:
package com.example.project1;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
Button button;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void Text(View arg0) {
// TODO Auto-generated method stub
EditText t1=(EditText) findViewById(R.id.username);
EditText t2=(EditText) findViewById(R.id.password);
String s1=t1.getText().toString();
String s2=t2.getText().toString();
TextView tv=(TextView) findViewById(R.id.textView3);
if(s1.equals("zhangjiangtao")&&s2.equals("111111"))
tv.setText("login success");
else
tv.setText("login fail");
}
}