一、登录页面activity_main的设计
首先在该页面上布局,设计需要登录的基本按钮和框:
设计之后更改相应的id,我设置的账号的id为usertext,密码的id为passwordtext,登录按钮的id为login。(注意设计id的时候最好加一个组件改一个id,因为后面的组件的位置需要用到各个组件的位置,如果等全部设计完成之后再更改id需要把是之前的id全部更改,不然布局会乱)
二、登录之后跳转的页面设计
1.在MainActivity的同一个包里面新建一个类,我设为Home;
代码如下:
package com.example.test; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public class Home extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.home); } }
2.在res的layout文件夹里面建立一个home的xml文件(注意命名为小写字母或者数字,不然会报错)
3.配置声明(需要声明新建的xml文件才能够使用,不然运行会出错)
在工程的末尾的AndroidMainfest.xml文件里面增加对新建的home.xml进行声明,在</activity>后面加如下代码:
<activity android:name="com.example.test.Home" android:label="@string/app_name" > </activity>
三、登录功能的实现
在MailActivity里面用单击事件实现页面的跳转和账号密码的验证:
方法一:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = (Button) MainActivity.this.findViewById(R.id.login); button.setOnClickListener(login1); }; private View.OnClickListener login1 = new View.OnClickListener(){ public void onClick(View v) { EditText userName = (EditText)MainActivity.this.findViewById(R.id.usertext); //查找usertext这个id的东西 EditText userPwd = (EditText)MainActivity.this.findViewById(R.id.passwordtext); //查找passwordtext这个id的东西 String name = userName.getText().toString(); //把账号的输入的内容获取赋值给name String pwd = userPwd.getText().toString(); //把密码的输入的内容获取,给pwd //Toast toast = Toast.makeText(MainActivity.this, "账号 "+name+"\r\n密码"+pwd, 5); //toast.show(); //上面注释的两行代码可以在页面输出账号密码的内容 if(name.contentEquals("lym")&&pwd.contentEquals("12345")){ //验证输入的内容账号是否正确 Intent intent=new Intent(); intent.setClass(MainActivity.this, Home.class); MainActivity.this.startActivity(intent); } } };
方法二:
上面只是利用函数的方法来实现单击事件,还可以利用内部类的方法实现页面的跳转。
public class MainActivity extends Activity { private Button login; private EditText user; private EditText password; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = (Button) MainActivity.this.findViewById(R.id.login); //button.setOnClickListener(login1); login=(Button)findViewById(R.id.login); user = (EditText)MainActivity.this.findViewById(R.id.usertext); //查找usertext这个id的东西 password = (EditText)MainActivity.this.findViewById(R.id.passwordtext); //查找passwordtext这个id的东西 login.setOnClickListener(new OnClickListener(){ public void onClick(View v) { user = (EditText)MainActivity.this.findViewById(R.id.usertext); //查找usertext这个id的东西 password = (EditText)MainActivity.this.findViewById(R.id.passwordtext); //查找passwordtext这个id的东西 String name = user.getText().toString(); //把账号的输入的内容获取赋值给name String pwd = password.getText().toString();//把密码的输入的内容获取,给pwd if(name.contentEquals("lym")&&pwd.contentEquals("12345")){ //验证输入的内容账号是否正确 Intent intent=new Intent(); intent.setClass(MainActivity.this, Home.class); MainActivity.this.startActivity(intent); } } }); };
虽然第二种方法代码比较少,但是它对于多个点击的事件处理比较麻烦,代码全都放一起,比较乱,第一个方法定义在外面的类实现功能更易查看与管理代码。
最后,登录功能实现: