今天学习了两个部分的内容:控件和事件
课后任务:设计需填写用户名和密码的登陆界面及登录按钮点击之后的跳转界面关联,目的是熟悉Button、TextView、EditText三个控件及事件的监听。
第一个界面通过拖动控件的方式完成:
xml文件中自动生成部分代码,根据需要进行编辑:
<EditText android:hint="请在此处输入6位密码" android:id="@+id/editText2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/textView" android:layout_centerHorizontal="true" android:ems="10" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/editText1" android:layout_marginTop="62dp" android:layout_toLeftOf="@+id/editText2" android:text="密码" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/editText1" android:layout_alignRight="@+id/textView" android:text="用户名" /> <EditText android:hint="请在此输入用户名" android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/editText2" android:layout_alignParentTop="true" android:layout_marginTop="106dp" android:ems="10" > <requestFocus /> </EditText> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/editText2" android:layout_below="@+id/editText2" android:layout_marginLeft="60dp" android:layout_marginTop="42dp" android:onClick="Loginlis" android:text="login" />
java类代码如下:
public class MainActivity extends Activity { private Button login; private EditText account; private TextView password; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //保存Activity的状态 setContentView(R.layout.activity_main); login=(Button)super.findViewById(R.id.button1); account=(EditText)super.findViewById(R.id.editText1); password=(TextView)super.findViewById(R.id.editText2); login.setOnClickListener(new OnClickListener() { //OnClickListener单击login后进行监听,还有其他如长按后进行监听等其他方法 public void onClick(View v) { if(account.getText().toString().equals("123456")){ //equals上课时验证只能用于string的比较(toString) password.setText(account.getText()); Intent t=new Intent(MainActivity.this,SecondActivity.class); //Intent工具连接两个activity(即界面跳转) MainActivity.this.startActivity(t); } } }); } }
此时还没有数据库,因此在java类中规定输入密码只能为123456,进行字符串判断,密码正确时才能在点击login按钮后跳转到另一界面。
第二个界面只放置了一张图片,代码较简单,就不再贴出
注意事项:
页面跳转的三个方法:在xml中进行绑定;匿名内部类;在一个父类(如View v)中进行判断,不同id对应不同的界面跳转结果。
特别应该注意的是,每创建一个新的界面(activity),都不要忘记注册!!!:
<activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <!-- 入口提示 只需要在MainActivity中 -->> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="SecondActivity" android:label="@string/app_name" > </activity>
T T今天的报错不知道有没有适当的解决办法,不过找到了一个万能的方式,就是从环境搭建到软件安装都重新进行一次。