叶哈哈哈哈叶

巨鲸落,万物生。

放弃不难,但坚持一定很酷。


第一个Android项目-登录界面

作为一个准备崛起的程序媛,需要写点东西来时刻督促并巩固自己的学习!

本次做的是一个简单的用户登录界面,主要初步介绍控件的常用一二功能。那么在此先附上丑陋界面图。

我们首先设计登录界面,如下代码是activity_main.xml:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Account:"
            android:textSize="25sp"/>

        <EditText
            android:id="@+id/edt_account"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Password:"
            android:textAllCaps="false"
            android:textSize="24sp"/>

        <EditText
            android:id="@+id/edt_password"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:inputType="textPassword"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button
            android:id="@+id/btn_login"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="登录"/>

        <Button
            android:id="@+id/btn_clean"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="清除"/>

    </LinearLayout>
</LinearLayout>

登录界面有了,我们继续对登录界面中的控件进行功能的添加,其中使用了:

1.EditText的getText()方法,用于获取用户所输入的内容,而setText()方法,用于设置EditText中的值。

2.为Button的点击事件注册一个监听器,每当用户单击按钮时,执行监听器中的onClick()方法。

3.Intent的跳转事件,首先创建一个Intent实例,需要传入俩个参数,第一个参数为context即一个启动活动上下文,第二个参数为Class即指定想要启动的活动。而Intent也可以传值,使用Intent.putExtra()方法,通过键值对的方式进行传值,第一个参数为键值,第二个参数为对应的值。(我们默认设置登录帐号为:shanks 密码为:123456)

MainActivity的代码如下:

public class MainActivity extends AppCompatActivity {

    Button btn_login,btn_clean;
    EditText edt_account, edt_password;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        edt_account = (EditText) findViewById(R.id.edt_account);
        edt_password = (EditText) findViewById(R.id.edt_password);

        btn_login = (Button) findViewById(R.id.btn_login);
        btn_login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String account = edt_account.getText().toString();
                String password = edt_password.getText().toString();
                if (account.equals("shanks") && account != null && password.equals("123456") && password != null) {
                    Intent intent = new Intent(MainActivity.this, SecActivity.class);
                    intent.putExtra("data", "Hello,SecActivity!");
                    startActivity(intent);
                } else {
                    Toast.makeText(MainActivity.this, "帐号或密码不能为空", Toast.LENGTH_SHORT).show();
                }

            }
        });
        btn_clean = (Button) findViewById(R.id.btn_clean);
        btn_clean.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                edt_account.setText("");
                edt_password.setText("");
            }
        });
    }
}

由于Intent要实现跳转界面,我们肯定还需要第二个活动,那么我们另外创建一个名为SecActivity的活动并将它的布局命名为:sec_activity。

我们在sec_activity中放入一个TextView用来显示从MainActivity传来的值,sec_activity.xml代码如下:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/txt"
        android:textSize="24sp"
        android:layout_centerInParent="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</RelativeLayout>

接下来是我们在SecActivity中获取由MainActivity传来的Intent,使用getIntent()获取Intent实例,并通过getStringExtra()方法,获取键值对中的字符串数据。

SecActivity.java代码如下:

public class SecActivity extends AppCompatActivity {

    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sec_activity);

        textView = (TextView) findViewById(R.id.txt);
        Intent intent = getIntent();
        String data = intent.getStringExtra("data");
        textView.setText(data);
    }
}

注意:在创建Activity时,需要在AndroidManifest.xml中在标签内进行注册。就像这样:

<application
    ...
    <activity android:name=".SecActivity"></activity>
</application>

至此,就大工告成拉!!!让我们来看看效果吧!

当点击登录按钮时,跳转至SecActivity活动:

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦