Android第三讲笔记(Activity简单操作)

Activity的概念

Activity是Android四大组件之一,为用户提供与系统交互的界面,对页面进行逻辑的操作
例如:QQ的界面每个人信息不一样,点击登陆按钮后的操作等等

Activity的操作

获得控件的方法

首先,在对控件进行交互时,要获得控件。通过**findViewById(R.id.控件id)**获得控件。然后可以对控件进行操作,下面是简单的演示。(关于R,创建的每一个工程出来src文件夹之外还有一个gen文件夹,gen里面有一个R.java,你在res目录下使用的图片,布局等资源都会在gen目录里的R。java自动生成对应的id。方便你调用)
在这里插入图片描述

按钮点击事件

点击事件
1.实现类继承View.OnClickListener并且重写onClick方法
2.匿名类实现
3.拉姆达表达式实现。用此方法接口名字可以省略,方法名字也可以省略,但接口中只能有一个方法。
详细见代码
在这里插入图片描述

示例一:点击按钮打印日志

Log.i(“标签名字”,“打印内容”);
在这里插入图片描述
Activity代码:

package com.hnucm.android_03;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    
    

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
//        通过代码修改文本的值
//        第一步 拿到文本的引用   根据文本的内存地址找到这个控件
        TextView textView= findViewById(R.id.textView5);
        textView.setText("湖南中医药大学");
        //给浮点类型的数据,浮点类型可以转成sp
        textView.setTextSize(50);

        //拿到按钮的引用
        Button button = findViewById(R.id.button);

        //创建了一个类,实现了接口,匿名内部类
        button.setOnClickListener(new View.OnClickListener() {
    
    
            @Override
            public void onClick(View v) {
    
    
                Log.i("MainActivity","MyOnClick");
            }
        });

        //接口的名字也可以省略,方法的名字也可以省略,参数名字也可以省略
        //拉姆达表达式  接口只能有一个方法
        button.setOnClickListener(
                (v) -> {
    
    
                    Log.i("MainActivity","MyOnClick");
                }
        );


    }
}

示例二:获取文本值并判断正误

这里用到了在app中打印的方法。
核心代码:Toast.makeText(MainActivity.this,"登陆成功",Toast.LENGTH_LONG).show();
这个方法需要传递三个参数,第一个是Context,是Toast的上下文,由于活动本身继承了Context对象,使用当前Activity即可。第二个参数是Toast显示的内容。第三个参数是Toast显示的时长。
在这里插入图片描述
在这里插入图片描述
Activity代码

package com.hnucm.android_03;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    
    

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

        EditText usernameText = findViewById(R.id.editTextTextPersonName);
        EditText passwordText = findViewById(R.id.editTextTextPersonName2);


//        MainActivity的父类的父类的父类的......是Context
        Button button=findViewById(R.id.button2);

        button.setOnClickListener(new View.OnClickListener() {
    
    
            @Override
            public void onClick(View v) {
    
    
                String username = usernameText.getText().toString();
                String password = passwordText.getText().toString();

                if(username.equals("hnucm")&&password.equals("123456")){
    
    
                    Toast.makeText(MainActivity.this,"登陆成功",Toast.LENGTH_LONG).show();
                }
                else{
    
    
                    Toast.makeText(MainActivity.this,"登陆失败",Toast.LENGTH_LONG).show();
                }
            }
        });

    }
}

示例三:简单加法计算器

在获得文本控件的数值之后,经过计算返回结果给另一个文本控件
在这里插入图片描述
Activity代码

package com.hnucm.android_03;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    
    

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

        EditText num1 = findViewById(R.id.textView2);
        EditText num2 = findViewById(R.id.textView3);
        EditText result=findViewById(R.id.textView4);
//        MainActivity的父类的父类的父类的......是Context
        Button button=findViewById(R.id.button3);

        button.setOnClickListener(new View.OnClickListener() {
    
    
            @Override
            public void onClick(View v) {
    
    
                int i = Integer.parseInt(num1.getText().toString());
                int j = Integer.parseInt(num2.getText().toString());
                result.setText((i+j)+"");
            }
        });

    }
}

示例四:实现了加减乘除的计算器

预告:过几天会将实现的多个数字加减乘除的计算器代码放出来(虽然已经完成了,因为这个是作业,很多同学还未完成,作业截止后发出)先放几张图。

在这里插入图片描述
在这里插入图片描述

补充

出现错误解决方法(在模拟器中出现错误)
报错了,没有这个id
在这里插入图片描述
1.查看日志在这里插入图片描述
2.分析错误的位置
在这里插入图片描述
欢迎批评指正,未完待续…

扫描二维码关注公众号,回复: 12992029 查看本文章

猜你喜欢

转载自blog.csdn.net/ladiez/article/details/115275925