布局相关

图片资源的如何在布局中调用?
@drawable/图片名
布局中weight的比例分配如何?
全部控件的weight总合除当前控件的weight,比如btn1:2 btn2:1 btn3:2,那么btn1-3的权重分配分别是2/5;1/5;2/5
LinearLayout的特点是什么?
辨别方法为:其内部控件要么水平摆放要么垂直摆放
按要求进行对相对布局进行排布

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

    <TextView
            android:id="@+id/item_nc"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="文本1"/>
    <TextView
            android:id="@+id/item_zh"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/item_nc"
            android:text="我在文本1的下面"/>

</RelativeLayout>

以下4个属性设置控件与之间的关系和位置

以下5个属性,设置的是控件与控件之间对齐的方式(是顶部、底部还是左、右对齐)

以下4个属性设置控件与父控件之间对齐的方式(是顶部、底部还是左、右对齐)

以下3个属性设置控件的方向

Activiy与控件

按钮响应条件1:按钮的id为btn1;条件2:实现接口的方法;条件3:点击按钮Toast内容为“我被点击了”

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent">
    <Button
            android:layout_width="100dp"
            android:layout_height="50dp"
            android:id="@+id/btn1"
            tools:ignore="SpeakableTextPresentCheck"/>
</RelativeLayout>

MainActivity.java

package com.example.mytest;

import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private Button btn1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化控件
        btn1 = (Button) findViewById(R.id.btn1);
        //监听控件
        btn1.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.btn1) {
            Toast.makeText(this, "我被点击了", Toast.LENGTH_SHORT).show();
        }
    }
}

RadioButton控件,这个控件的功能是?
单选按钮
归纳和总结出一个activity启动另一个activity的过程
答:有显式意图和隐式意图两种类型
显示意图:
通过Intent()构造方法实现,第一个参数表示当前activity对象(this),第二个参数表示要启动的目标activity。通过这个方法创建一个对象,然后将该对象传递给startActivity()方法即可启动。
隐式意图:
1、需要在AndroidManifest.xml中对应注册的activity先设置过滤器
2、过滤器中添加action
3、activity中需要new一个Intent(意图)
4、添加和注册时一样的action
5、startAction()完成启动

startActivityForResult中各参数的作用
第一个参数是intent对象,第二个参数是请求码,用于判断数据的来源
Activity生命周期函数中,onCreate的作用是什么,一般将findViewById放在这个函数中
Activity创建时被调用,通常做一些初始化设置
Activity的启动模式有什么?各个模式的原理(书面总结)


1、standard模式:默认的启动模式,每启动一个activity就会在栈顶创建一个新的实例;
2、singleTop模式:判断要启动的activity实例是否位于栈顶,如果是则直接复用,否则创建新的实例;
3、singleTask模式:系统首先检查栈中是否存在当前activity实例,如果存在则直接使用,并把当前实例之上的全部出栈,否则会重新创建新实例;
4、singleInstance模式:启动新的栈来管理activity实例,无论从哪个任务启动该activity,该实例在整个系统中只有一个。如果要启动的activity不存在,则会先创建新的栈再创建activity实例,如果已存在,系统会把它所在的任务栈转移到前台。

AlterDialog对话框调用什么函数可以使得对话框消失,普通对话框中是如何设置标题等信息的?
调用dismiss()函数使得对话框消失;new一个AlterDialog对象,传入当前上下文和标题信息两个值即可。

存储篇

内部存储、外部存储、SharedPreferences分别的是如何存储的?
内部存储:创建FileOutputStream对象,通过该对象的write()方法将数据写入文件中。
外部存储:使用Environment的getExternalStorageState()和getExternalStorageDirectory()方法判断sd卡和获取sd卡根目录的路径,然后用FileOutputStream对象将数据写入。
SharedPreferences:首先调用getSharedPreferences()方法获取实例对象。然后调用SharedPreferences的Editor()方法获取到可编辑的Editor对象,最后通过该对象的putString()方法存储数据。

编写一个SharedPreferences存储的程序,每个步骤要清楚其作用

package com.example.experiment6;

import android.content.Context;
import android.content.SharedPreferences;
import java.util.HashMap;
import java.util.Map;

public class SaveQQFile {
    //存储文件
    public static boolean saveUserInfo(Context context,String userName,String passWord){
        //获取实例对象
        SharedPreferences sp = context.getSharedPreferences("data", Context.MODE_PRIVATE);
        //获取编辑器
        SharedPreferences.Editor edit = sp.edit();
        //存入String类型的账号密码
        edit.putString("userName",userName);
        edit.putString("passWord",passWord);
        //提交修改
        edit.commit();
        return true;
    }
    //读取文件
    public static Map<String, String> getUserInfo(Context context) {
        //获取实例对象
        SharedPreferences sp = context.getSharedPreferences("data", Context.MODE_PRIVATE);
        //获取账号密码
        String userName = sp.getString("userName", null);
        String passWord = sp.getString("passWord", null);
        //创建一个哈希表
        Map<String,String>userMap = new HashMap<String,String>();
        //插入账号密码键值对
        userMap.put("userName",userName);
        userMap.put("passWord",passWord);
        //返回哈希表
        return userMap;
    }
}

数据库中事务的概念是什么?
事务是一个对数据库执行工作的单元,是针对数据库的一组操作,它可以由一条或多条SQL语句组成;事务是以逻辑顺序完成的工作单元或序列,可以是由用户手动操作完成,也可以是由某种数据库程序自动完成。

服务篇

启动服务的两种方式是什么
startService()和bindService()
两种启动服务中,各函数的作用是什么?

  • onCreate():第一次创建服务时执行的方法;
  • onDestory():服务被销毁时执行的方法;
  • onStartCommand():客户端通过调用startService()方法启动服务时执行的方法;
  • onBind():客户端通过调用bindService()方法启动服务时执行的方法;
  • onUnbind():客户端通过unBindService()断开服务绑定时执行的方法。

广播篇

广播是什么?
广播是一种运用在应用程序之间传递消息的机制,例如电池电量低时会发送一条提示广播。
广播应用的场合(P149)
Android中内置了很多系统广播:只要涉及到手机的基本操作(开机、网络变化、插入耳机等),都可以通过发送系统广播来监听变化,通过发送对应的intent-filter(包括action)
写一个Toast提示并显示出来,提示内容为”我要复习好“,Toast的特点是什么?

  • 提示消息不会获得焦点
  • 信息会自动消失,不会一直保留
Toast.makeText(this, "我要复习好", Toast.LENGTH_SHORT).show();

内容提供者篇

将内容观察者、提供者、操作者三者关系原理理清

  • 内容提供者:暴露本应用的私有数据,供其它应用使用,在不同程序之间实现数据共享
  • 内容观察者:观察制定Uri所代表的数据,实时监听内容提供者共享的数据是否发生变化
  • 内容操作者:使用ContentProvider共享数据时提供了相应操作的Uri,因此在访问现有的ContentProvider时要指定相应的Uri然后通过ContentResolver对象来实现数据的操作

观察者等函数名要记忆清楚

  • 提供者:ContentProvider
  • 观察者:ContentObserver
  • 操作者:ContentResolver

URI的格式是什么?

$$ \underbrace{content://}_{sheme}\quad\underbrace{aaa.bbb.ccc}_{authority}\quad\underbrace{/userinfo}_{path} $$

scheme是一个标准的前缀,表明这个数据被内容提供者所控制,不会被修改。authority是在创建内容提供者时制动的属性值,主要用来区分不同的应用程序,为了避免冲突,会采用程序包名的方式命名。path代表资源,当访问者需要操作不同数据时,这个部分是可以动态改变的。

URI是什么英文缩写
统一资源标识符Uniform Resource Identifier

其他

四层架构:应用程序层,应用程序架构层。核心类库,Linux内核

布局:线性,相对,绝对,帧,表格
padding:内边距,内部,填充
margin:外边距,外部,留白

帧布局是以左上角为起点进行对其控件的

主题文件存放在哪个文件夹下?
(/res/values/themes)文件themes.xml

最后修改:2021 年 12 月 22 日
如果觉得我的文章对你有用,请随意赞赏