Android Studio期末复习--复盘

Android Studio期末复盘

需要资料的,文章末尾免费自提

1、选择题

1、下列不是手机操作系统的是( )。
A Android
B Window Mobile
C Apple IPhone IOS
D Windows Vista


2、下列选项哪个不是 Activity 启动的方法 ( )
A startActivity
B goToActivity
C startActivityForResult
D startActivityFromChild


3、下列哪个不是Activity的生命周期方法之一( )
A onCreate
B startActivity
C onStart
D onResume


4、下列哪个可做 Android 数据存储( )
A SQlite
B MySql
C Oracle
D DB2


5、下列哪个可做EditText编辑框的提示信息()
A android:inputType
B android:text
C android:digits
D android:hint


6、Math.ceil(99.1) 的结果是()
A 99
B 100
C 99.1
D 99.0


7、android 中下列属于Intent的作用的是( )
A 实现应用程序间的数据共享
B 是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失
C 可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带
D 处理一个应用程序整体性的工作


8、下面哪种说法不正确
A. Android应用的gen目录下的R.java被删除后还能自动生成;
B. res目录是一个特殊目录,包含了应用程序的全部资源,命名规则可以支持数字(0-9)下横线(_),大小写字母(a-z , A-Z);
C AndroidManifest.xml文件是每个Android项目必须有的,是项目应用的全局描述。其中指定程序的包名(package=”…”)+指定android应用的某个组件的名字(android:name=”…”)组成了该组件类的完整路径
D assets和res目录都能存放资源文件,但是与res不同的是assets支持任意深度的子目录,在它里面的文件不会在R.java里生成任何资源ID


9、在一个相对布局中怎样使一个控件居中
A. android:gravity=“center”
B. android:layout_gravity=“center”
C.android:layout_centerInParent="true"
D.android:scaleType=“center”


10、以下不属于SharedPreferences提供的方法来读取Preferences的数据的是( )
A. getBoolean
B. getFloat
C.getObject
D.getString


11、关于Activity的描述,下面哪个是错误的?
A. 一个Android程序中只能拥有一个Activity类
B. Activity类都必须在Androidmaniefest.xml中进行声明
C. 系统完全控制Activity的整个生命周期
D. Activity类必须重载onCreate方法


12、关于widget(组件)属性的写法,下面哪个是正确的?
A. android:id=”@+id/tv_username”
B. android:layout_width=”100px”
C. android:src=”@drawable/icon”
D. android:id=“@id/tabhost”


13、下面哪个不是Android SDK中的ViewGroup(视图容器)?
A. LinearLayout
B. ListView
C. GridView
D. Button


14、下列说法错误的是
A. Intent起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦
B. Intent 可以传递 View对象
C.对于直接Intent,Android不需要去做解析,因为目标组件已经很明确,Android需要解析的是那些间接Intent,通过解析,将 Intent映射给可以处理此Intent的Activity、IntentReceiver或Service
D.通过Intent可以删除程序


15、这是一个资源配置文件,下面描述正确的是?

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="line"> 
	<stroke 
			android:color="@color/gray" 
			android:dashWidth="5dp"
			android:dashGap="3dp"/> 
</shape>

A. 这个shape文件是画一个宽为5dp,高为3dp的色块
B. 这个shape文件是画一个宽从5dp到3dp的等腰梯形
C.这个shape文件是画一个底为5dp高为3dp的等腰三角形
D.这个shape文件是画一条虚线,实线段5dp,间隔3dp


16、下列哪个权限可以用于制作获取手机通讯录信息功能( )
A. android.permission.BATTERY_STATS
B. android.permission.READ_SMS
C. android.permission.READ_CONTACTS
D. android.permission.SUBSCRIBED_FEEDS_READ


17、Android应用程序主要包含4中组件,其中_______通常就是一个单独的屏幕。( )
A. Service
B. Intente
C. SQLite
D. Activity


18、下列方法是不属于Fragment生命周期的方法的是( )
A. onStart
B. onFreeze
C. onDestroyView
D. onActivityCreate


19、Java是从()语言改进重新设计。( )
A.Ada
B.C++
C.Pasacal
D.BASIC


20、关于Socket和ServerSocket的说法不正确的是:()
A. Socket是客户端套接字,用于实现两台计算机之间的通讯
B. ServerSocket是服务器套接字,用于监听并接受来自客户端的Socket连接
C. 服务器端无需使用Socket
D. 客户端无需使用ServerSocket


21、android 关于service生命周期说法正确的是( )
A.如果service已经启动,将先后调用onStart()和onCreate()
B.当第一次启动的时候先后调用onCreate()和onStart()方法
C.当第一次启动的时候只会调用onCreate()方法
D.如果service已经启动,只会执行onStart()方法,不在执行onCreate()方法


22、Java中的子类也称为( )
A. 内联类
B. 嵌套类
C. 派生类
D. 隐藏类


23、下列语句哪一个正确()
A.Java程序经编译后会产生byte code
B.Java程序经编译后会产生DLL
C. Java程序经编译后会产生machine code
D.以上都不正确


24、不属于Android中常用的网络编程方式是:()
A. Socket和ServerSocket
B. HTTPClient
C. HTTPURLConnection
D.Firefox


25、Android的VM虚拟机是哪个?
A.Dalvik
B.JVM
C.KVM
D. framework


26、 AndroidVM虚拟机中运行的文件的后缀名为()
A.class
B.apk
C.dex
D.xml


27、下面关于Android DVM的进程和Liunx的进程,应用程序的进程说法正确的是
A.DVM指dalivk的虚拟机.每一个Android应用程序都在自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例,而每一个DVM都是在Liunx中的一个进程,所以说可以认为是同一个概念。
B.DVM指dalivk的虚拟机.每一个Android应用程序都在自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例,而每一个DVM不一定都是在Liunx中的一个进程,所以说可以认为不是一个概念。
C.DVM指dalivk的虚拟机.每一个Android应用程序都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例,而每一个DVM不一定都是在Liunx中的一个进程,所以说可以认为不是同一个概念。
D.DVM指dalivk的虚拟机.每一个Android应用程序都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例,而每一个DVM都是在Liunx中的一个进程,所以说可以认为是同一个概念。


28、在AndroidManifes.xml中描述一个Activity时,该Activity的label属性是指定什么()
A.指定Activity的图标
B.指定Activity的显示图标
C.指定Activity和类相关联的类名
D.指定该Activity的唯一标识


29、关于ContentValues类说法正确的是( )
A.它和Hashtable比较类似,也是负责存储一些名值对,但是它存储的名值对当中的名是String类型,而值都是基本类型。
B.它和Hashtable比较类似,也是负责存储一些名值对,但是它存储的名值对当中的名是任意类型,而值都是基本类型。
C.它和Hashtable比较类似,也是负责存储一些名值对,但是它存储的名值对当中的名可以使空,而值都是String类型。
D.它和Hashtable比较类似,也是负责存储一些名值对,但是它存储的名值对当中的名是String类型,而值也是String类型。


30、Activity对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行()
A.onPause()
B.onCreate()
C.onResume()
D.onStart


31、如果在android应用程序中需要发送短信,那么需要在AndroidManifest.xml文件中增加什么样的权限().
A.发送短信,无需配置权限
B.permission.SMS
C.android.permission.RECEIVE_SMS
D.android.permission.SEND_SMS


32、下面说法错误的是()
A.Android采用单线程模型
B.Android会默认会为线程创建一个关联的消息队列
C.Handler会与多个线程以及该线程的消息队列对应
D.程序组件首先通过Handler把消息传送给Looper,Looper把消息放入队列


33、关于广播以下陈述正确的是().
A.广播接收器只能在配置文件中注册
B.广播接收器注册后不能注销
C.广播接收器只能接收自定义的广播消息
D.广播接收器可以在Activity中单独注册与注销


34、关于应用程序的生命周期,一个Activity从启动到运行状态需要执行3个方法,请选择一个正确的执行顺序。
A. onCreate()->onStart()->onResume()
B. onStart()->onCreate()->onResume()
C. onCreate()->onResume()->onStart()
D. onStart()->onResume()->onCreate()


35、对Android项目工程里的文件,下面哪个描述是错误的?
A. res目录:该目录存放程序中需要使用的资源文件,在打包过程中android的工具会对这些文件做对应的处理
B. R.java文件是自动生成而不需要开发者维护的。在res文件夹中内容发生任何变化,R.java文件都会同步更新
C. Assets目录:在该目录下存放的文件,在打包过程中将会经过编译后打包在APK中
D. AndroidManifest.xml是程序的配置文件,程序中用到的所有Activity、Service、BroadcastReceiver、Intent和Content Provider都必须在这里进行声明


36、下列属于AsyncTask的方法是( )
A. run
B. execute
C. doInBackground
D. handler


37、关于AlerDialog的描述不正确的是( )
A. 使用new 关键字创建AlerDialog的实例
B. 对象框的显示需要调用show方法
C. setPositiveButton方法是用来添加确定按钮的
D. setNegativeButton 方法是用来添加取消按钮的


38、下列对SharePreferences文件说法中不正确的是( )
A. 属于移动存储方案
B. SharePreferences存储形式是key-value键值对
C. 默认的存储路径是 /sdcard/shared_prefix
D. 信息的保存格式是xml


39、数据源如果为sqlite数据库中查出的信息最适合的适配器是( )
A. SimpleAdapter
B. SimpleCursorAdapter
C. ArrayAdapter
D.ListAdapter



2、填空题

1、Android中所有的UI组件都是继承_View__类


2、Android系统中,轻量级的关系数据库是_SQLite,快速的数据存储方式是__SharedPreferences__。


3、可以同时选择多个选项的控件是 CheckBox, 而_ RadioButton _则是仅可以选择一个选项的控件 。


4、Android中要是Toast显示,最后必须调用其_show()_方法。


5、发送广播使用的方法是__ sendBroadcast()____。


6、给ListView设置适配器的方法是__ setAdapter()__。


7、Android中需要调用摄像头硬件的权限是_android.permission.CAMERA_。


8、定义 LinearLayout 水平方向布局时至少设置的三个属性:_android:orientation (android:orientation),android:layout width 和 android:layout height _。(android:layout height)


9、为了使 android 适应不同分辨率机型,布局时字体单位应用( sp ),像素
单位应用( sp )和( dp


10、layout 布局文件的命名不能出现字母( 大写


11、 设置 TextView 字体的属性是:( android:typeface )。


12、Android 四大组件是( Activity),(Service),(BroadcaseReceiver)和(ContentProvider)。



3、判断题

1、一个Activity就是一个可视化的界面或者看成是控件的容器。(


2、SQLite 属于Android体系结构中的应用程序层。(×


3、Android 工程中,放在 res/和 assets/下的资源文件都会在 R.java 文件里生成相应的编号。(×


4、EditText编辑框的提示信息可以通过android:hint来设置。(


5、树中元素之间是多对多的关系。( ×


6、顺序查找方法只能在顺序存储结构上进行。( ×


7、当待排序记录规模较小时,选用直接插入排序算法比较好。(



4、简答题

1、简述在界面设计中对View控件设置fill_parent与wrap_content的区别?

fill_parent => match_parent:它会充满整个父容器,无论父容器有多大,该View将扩展以填充父容器的全部可用空间。
wrap_content:意味着View的大小将根据内容的大小而自动适应,而不会占据多余的空间。

2、简述R.java和AndroidManifest.xml文件的用途?

R.java 文件用于管理应用程序的资源;
AndroidManifest.xml 文件用于描述应用程序的配置和元数据,以确保应用程序能够正确运行并与Android系统进行交互。

3、简述Android系统的4种基本组件的用途

Activity是Android中用户界面的展示单元,用于用户与应用程序进行交互。通过Activity,用户可以浏览应用的不同页面,并执行各种操作。
Service是在后合执行长时间运行操作的组件,与用户界面无关。Service可以在后台下载文件、播放音乐、执行网络请求等多种任务,而不会妨碍用户与应用的交。
Broadcast Receiver是用于接收并响应系统或应用中的广播消息的组件。
Content Provider是用于在应用程之间共享数据的组件。

4、Fragment是什么?请介绍一下它的优点?

碎片、片段。其目的是为了解决不同屏幕分辩率的动态和灵活UI设计。
1.Fragment可以使你能够将activity分离成多个可重用的组件,每个都有它自己的生命周期和UI。
2.Fragment可以轻松得创建动态灵活的UI设计,可以适应于不同的屏幕尺寸。从手机到平板电脑。
3.Fragment是一个独立的模块,紧紧地与activity绑定在一起。可以运行中动态地移除、加入、交换等。
4.Fragment提供一个新的方式让你在不同的安卓设备上统一你的UI。
5.Fragment 切换流畅,轻量切换。
6.Fragment 替代TabActivity做导航,性能更好。
7.Fragment 在4.2.版本中新增嵌套fragment使用方法,能够生成更好的界面效果。

5、简述Intent的定义和用途

Intent(意图)是Android操作系统中的一个核心概念,它用于在应用程序和操作系统之间传递信息和启动操作。简单来说,Intent是一种可以在不同组件之间传递消息和指令的机制。可以用于实现不同组件之间的通信和数据传递
Intent主要用于以下两个方面:

  1. 启动Activity、Service或BroadcastReceiver:通过指定Intent的组件名称或操作行为,可以启动特定的组件,并将数据传递给这些组件进行处理。例如,可以使用Intent启动另一个Activity,以便在屏幕上显示新的用户界面。
  2. 传递数据:Intent还可以用于在不同组件之间传递数据。例如,可以使用Intent在两个Activity之间传递数据,以便在其中一个Activity中处理数据,然后在另一个Activity中显示结果。

6、Android有几种存储数据的方式,请写出各自的特点?

文件存储:存储少量数据数据格式无须结构化
SharePreferences存储:是一个轻量级的存储机制,数据是以key-value键值对的方式进行组织和管理,保存在XML文件中存储少量数据结构简单的数据。
SQLite数据库存储:是一个轻量级数据库,没有后台进程,整个数据库对应一个文件,便于移植,存储数据量较多且需要进行结构化的数据

7、简述Android系统架构从高到低的几个层次?

应用层→应用框架层→库层→Linux(内核层)

8、简述在嵌入式系统中使用SQLite数据库的优势?

SQLite是一个开源的嵌入式关系数据库,在2000年由D. Richard Hipp发布,其优势(特点)有:
更加适用于嵌入式系统,嵌入到使用它的应用程序中;
占用资源非常少,运行高效可靠,可移植性好
提供了零配置(zero-configuration)运行模式。

9、Android应用工程文件结构有哪些?

1.src文件:项目源文件都保存在这个目录中
2.R.java文件:这个文件是IDE自动生成的,开发者不需要修改里面的内容
3.Android Library:包含了应用运行所需要的Android库
4. assets目录:主要放置多媒体文件
5. res目录:主要放置会用到的资源文件
6. drawable目录:主要放置会用到的图片资源
7. layout目录:主要放置XML格式的布局文件
8. values目录:主要放置字符串(strings.xml)、颜色(colors.xml)、数组(array.xml)。
9. Androidmanifest.xml:相当于应用的配置文件,在这个文件里面需要声明应用的名称,应用的Activity,Service以及receiver。

10、Android底层库包含哪些?

1、核心 Java 库:包括 Java 基础类,如集合、IO、线程等。
2、C/C++ 库:包括 libc、SQLite、OpenGL ES 等。
3、驱动程序:与硬件交互,如触摸屏、音频、Wi-Fi 等。
4、资源管理:用于加载和管理应用程序的资源,如布局、图像、字符串等。
5)\Android 平台:包括 Android 框架、Activity Manager、Window Manager 等。

11、请介绍下 Android 中常用的五种布局。

  • FrameLayout(框架布局
  • LinearLayout(线性布局
  • AbsoluteLayout(绝对布局
  • RelativeLayout(相对布局
  • TableLayout(表格布局

12、复习下面activity的生命周期图例,矩形框中的方法顺序,见下图所示:
在这里插入图片描述
在这里插入图片描述

5、程序分析题

根据已知程序分析运行结果?使用语言文字描述即可!

1、该程序的主要功能是点击 btn2 按钮后,异步地加载来自指定URL的图像,并将其显示在应用界面的 image 图像视图上。

public class Main10Activity extends AppCompatActivity {
    private Button btn1;
    private ImageView image;
    Bitmap bitmap1;

    private Button btn2;
    private Bitmap bitmap2;
    Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if(msg.what==0x01){
                image.setImageBitmap(bitmap1);
            }       }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main10);
        btn1 = (Button) findViewById(R.id.button);
        image = (ImageView) findViewById(R.id.imageView);
        btn2 = (Button) findViewById(R.id.button1);
        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                new Thread(){
                    @Override
                    public void run() {
                        super.run();
                        try {
							URL url=new URL("https://gimg2.baidu.com/image_search/"+ 
							"src=http%3A%2F%2Fimg2.jiemian.com%2Fjiemian%2Foriginal%2F20180802%2F"
							 +"153317808580568800.jpg&refer=http%3A%2F%2Fimg2.jiemian.com&app=2002&size=f9999,"+
							  "10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1636676528&t=2e79dec61b347caa9eaac9568d7419ef");
                       try {
					        URLConnection urlConnection = url.openConnection();
					        InputStream inputStream = urlConnection.getInputStream();
					        bitmap2 = BitmapFactory.decodeStream(inputStream);
					        handler.sendEmptyMessage(0x02);
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        } catch (MalformedURLException e) {
                            e.printStackTrace();
    }      }
  }.start();}  });

2、该应用程序的主要功能是在用户点击项目名称时,动态地更新屏幕上的内容,显示选中项目的相关信息。

public class MainActivity extends AppCompatActivity {
 private  String[] item={"人工智能","大数据","移动开发","物联网","云计算","AR"};
 private String[] content={"研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学", "所涉及的资料量规模巨大到无法透过主流软件工具","以手机、PDA、UMPC等便携终端为基础,进行相应的开发工作","通过各类可能的网络接入,实现物与物、物与人的泛在连接","通过网络“云”将巨大的数据计算处理程序分解成无数个小程序","实时地计算摄影机影像的位置及角度并加上相应图像的技术"};
 private ListView listview;
 private TextView text;
 private com.example.administrator.teestdemo19.fragment fragment;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        text = (TextView) findViewById(R.id.textView);
        listview = (ListView) findViewById(R.id.listView);
        listview.setAdapter(new ArrayAdapter<String>(getApplicationContext(),R.layout.item,item));  
        listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                FragmentManager supportFragmentManager = getSupportFragmentManager();
                fragment = (com.example.administrator.teestdemo19.fragment) 			
                supportFragmentManager.findFragmentById(R.id.fragment1);
                final TextView text1 = fragment.getView().findViewById(R.id.fr_text);
                text1.setText(content[i]);
                text.setText("当前选中的是" + item[i]);
            }  });  } }

3、该应用程序的主要功能是实时显示时间,并每隔一秒更新一次。

public class Main6Activity extends AppCompatActivity {
    private TextView txt;
    private String time;
    Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if(msg.what==0x01){
                String time = (String) msg.obj;
                txt.setText(time);
            }     }    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main6);
        txt = (TextView) findViewById(R.id.textView);
        new Thread(){
            @Override
            public void run() {
                super.run();
                while(true) {
                    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");                    
                    simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
                    time = simpleDateFormat.format(System.currentTimeMillis());
                    Message message = new Message();
                    message.what = 0x01;
                    message.obj = time;
                    handler.sendMessage(message);
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }.start();    }}

4、该应用程序的主要功能是通过点击ToggleButton来控制灯泡的开关状态,并实时更新灯泡图像以反映状态的改变,同时显示通知以告知用户开关状态的变化

public class Main7Activity extends AppCompatActivity {
    private ToggleButton toggle;
    private ImageView iamge;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main7);
        toggle = (ToggleButton) findViewById(R.id.toggleButton);
        iamge = (ImageView) findViewById(R.id.imageView);
        //iamge.setImageResource(R.drawable.off);
        toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
                if(b){
                    iamge.setImageResource(R.drawable.on);
                    Toast.makeText(getApplicationContext(),"已开灯",Toast.LENGTH_SHORT).show();
                }else{
                    iamge.setImageResource(R.drawable.off);
                    Toast.makeText(getApplicationContext(),"已关灯",Toast.LENGTH_SHORT).show();
                }  }   });   }}

5、该应用程序的主要功能是展示一个包含多个电影选项的单选按钮组,根据用户的选择显示不同电影的相关图片,并提供一个按钮用于切换到另一个活动

public class Main7Activity extends AppCompatActivity {

    private Button btn;
    private ImageView imageview;
    private RadioGroup radiogroup;
    private RadioButton radiobtn;
    private Button btn2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main7);
        initView();
        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(getApplicationContext(),Main8Activity.class);
                startActivity(intent);
                finish();
            }
        });
radiogroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()      {
          @Override
   public void onCheckedChanged(RadioGroup radioGroup, int i) {
     switch (i){
     case R.id.radioButton:
       Toast.makeText(getApplicationContext(),"您选择的影片是水门桥",Toast.LENGTH_SHORT).show();
       imageview.setImageResource(R.drawable.shuimenqiao);
        break;
      case R.id.radioButton2:
       Toast.makeText(getApplicationContext(),"您选择的影片是铁道英雄",Toast.LENGTH_SHORT).show();
       imageview.setImageResource(R.drawable.tdyx);
        break;
      case R.id.radioButton3:
       Toast.makeText(getApplicationContext(),"您选择的影片是速度与激情9",Toast.LENGTH_SHORT).show();
         imageview.setImageResource(R.drawable.sdyjq);
        break;
          case R.id.radioButton4:
           Toast.makeText(getApplicationContext(),"您选择的影片是侏罗纪世界3",Toast.LENGTH_SHORT).show();
         imageview.setImageResource(R.drawable.zhuluoji);
          break;
         case R.id.radioButton5:
          Toast.makeText(getApplicationContext(),"您选择的影片是哥斯拉大战金刚",Toast.LENGTH_SHORT).show();
         imageview.setImageResource(R.drawable.gsldzjg);
           break;
         case R.id.radioButton6:
         Toast.makeText(getApplicationContext(),"您选择的影片是独行月球",Toast.LENGTH_SHORT).show();
        imageview.setImageResource(R.drawable.duxingyueqiu);
        break;
  }
  } });    }
    private void initView() {
        btn = (Button) findViewById(R.id.button);
        btn2 = (Button) findViewById(R.id.button2);
        imageview = (ImageView) findViewById(R.id.imageView);
        radiogroup = (RadioGroup) findViewById(R.id.radiodroup);
    }
}

6、该应用程序的主要功能是允许用户在EditText中输入文本数据,然后将数据保存到SharedPreferences中,并在需要时从SharedPreferences中读取并显示在TextView中。

public class Main8Activity extends AppCompatActivity {

    private EditText edittxt;
    private TextView txt;
    private SharedPreferences sharedPreferences;
    private SharedPreferences.Editor editor;

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

        edittxt = (EditText) findViewById(R.id.editText);
        txt = (TextView) findViewById(R.id.textView);

        sharedPreferences = getSharedPreferences("clf", Context.MODE_WORLD_WRITEABLE);
        editor = sharedPreferences.edit();

    }
        public void write(View view){

            editor.putString("001",edittxt.getText().toString());
            editor.commit();

        }

         public void read(View view){

             String xx = sharedPreferences.getString("001", "");
             txt.setText(xx);
         }
}

7、静态加载fragment、动态实现加载fragment的代码,判断是静态加载fragment还是静态加载fragment!(了解一下红字部分)

静态加载是指在XML布局文件中定义Fragment,然后通过FragmentManager将其添加到Activity中。

XML布局文件(activity_main.xml):

<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"
    tools:context=".MainActivity">
    <fragment
        android:id="@+id/staticFragment"
        android:name="com.example.StaticFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</RelativeLayout>

MainActivity.java:

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

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

StaticFragment.java:

import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class StaticFragment extends Fragment {

    public StaticFragment() {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_static, container, false);
    }
}

动态加载是在运行时通过代码将Fragment添加到Activity中

XML布局文件(activity_main.xml):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
</RelativeLayout>

MainActivity.java:

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentTransaction;

public class MainActivity extends AppCompatActivity {

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

        // 开始Fragment事务
        FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();

        // 创建并添加Fragment
        DynamicFragment dynamicFragment = new DynamicFragment();
        fragmentTransaction.add(R.id.container, dynamicFragment);

        // 提交事务
        fragmentTransaction.commit();
    }
}

DynamicFragment.java:

import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class DynamicFragment extends Fragment {

    public DynamicFragment() {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_dynamic, container, false);
    }
}

如何判断:

在 onCreate 方法中,你可以使用 findViewById 方法检查布局文件中是否包含Fragment的容器。如果找到了对应的容器,说明该Fragment是静态加载的。

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

    // 尝试查找Fragment的容器
    View staticFragmentContainer = findViewById(R.id.staticFragmentContainer);

    if (staticFragmentContainer != null) {
        // 存在Fragment容器,说明是静态加载的Fragment
        // 可以执行相应的静态加载Fragment的逻辑
    }
}

如果你在代码中动态添加Fragment,可以通过查看Fragment是否在FragmentManager中来判断是动态加载的。

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

    // 尝试获取动态加载的Fragment
    DynamicFragment dynamicFragment = (DynamicFragment) getSupportFragmentManager()
            .findFragmentByTag(DynamicFragment.class.getSimpleName());

    if (dynamicFragment != null) {
        // 存在动态加载的Fragment,说明是动态加载的Fragment
        // 可以执行相应的动态加载Fragment的逻辑
    } else {
        // 不存在动态加载的Fragment,可以执行其他逻辑
    }
}

6、程序填空题

1、写一段代码,要求能够启动浏览器打开百度网页

	Intent intent = new Intent();//创建了一个新的Intent对象,用于启动一个操作。
	intent.setAction(Intent.ACTION_VIEW);// 该Intent的目的是要查看(浏览)某种内容。
	Uri data= Uri.parse(http://www.baidu.com);// 创建了一个URI对象,用于表示要查看的数据的位置,
											 //通过Uri.parse()方法将字符串转换为URI对象。
	intent.setData(data);// 将前面创建的URI对象(代表百度的URL)设置为Intent的数据(Data),Intent的目标是要查看指定的网址。
	startActivity(intent);//启动intent

2、3秒延时自动跳转APP登录的代码。
通过Hander()中的postDelayed方法实现页面跳转时的延迟操作。

package com.example.myapplication01;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;

public class BmiWelcomeActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bmi_welcome);
        
		//具体实现
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                Intent intent = new Intent(getApplicationContext(), BmiActivity.class);
                startActivity(intent);
                finish(); //回收内存
            }
        },3000);
    }
}

3、学生管理系统中“增删改查”4个功能的java实现代码,如下图所示:
在这里插入图片描述

package com.example.myapplication01;

import androidx.appcompat.app.AppCompatActivity;

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class StudentActivity extends AppCompatActivity {
    private EditText bianhao;
    private EditText name;
    private EditText age;
    private EditText czbianhao;
    private EditText czname;
    private TextView czresult;
    private SQLiteDatabase database;


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

        bianhao = findViewById(R.id.bianhao);
        name = findViewById(R.id.name);
        age = findViewById(R.id.age);

        czbianhao = findViewById(R.id.czbianhao);
        czname = findViewById(R.id.czxingming);
        czresult = findViewById(R.id.result);

        Mydatabase mydatabase = new Mydatabase(StudentActivity.this);
        database = mydatabase.getWritableDatabase();

    }
    public void  insert(View view) {
        String sql1 = "select * from user where 编号=?";
        Cursor cursor = database.rawQuery(sql1, new String[]{bianhao.getText().toString()});
        if (cursor.getCount() == 0) {
            String sql = "insert into user(编号,姓名,年龄)values(?,?,?)";
            database.execSQL(sql, new Object[]{Integer.parseInt(bianhao.getText().toString()), name.getText().toString(),
                    Integer.parseInt(age.getText().toString())});
            Toast.makeText(getApplicationContext(), "已成功添加!!!", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(getApplicationContext(), "数据已存在!!!", Toast.LENGTH_SHORT).show();
            bianhao.setText("");
            bianhao.requestFocus();
        }
    }
    public void  delete(View view){
        String sql = "delete from user where 编号=?";
        database.execSQL(sql,new Object[]{Integer.parseInt(bianhao.getText().toString())});
        Toast.makeText(getApplicationContext(),"数据已删除!!!",Toast.LENGTH_SHORT).show();
    }
    public void update(View view){
        String sql = "update user set 姓名=?,年龄=? where 编号=?";
        database.execSQL(sql,new Object[]{name.getText().toString(),Integer.parseInt(age.getText().toString()),
                Integer.parseInt(bianhao.getText().toString())});
        Toast.makeText(getApplicationContext(),"数据已更新!!!",Toast.LENGTH_SHORT).show();
    }
    public void findbianhao(View view){
        String sql="select * from user where 编号=?";
        Cursor cursor = database.rawQuery(sql,new String[]{czbianhao.getText().toString()});
        if(cursor.moveToNext()){
            int bianhao1 = cursor.getInt(cursor.getColumnIndex("编号"));
            String name1 = cursor.getString(cursor.getColumnIndex("姓名"));
            int age1 = cursor.getInt(cursor.getColumnIndex("年龄"));

            czresult.setText("查找结果->编号: "+bianhao1+"\t姓名:"+name1+"\t年龄:"+age1);
        }else {
            Toast.makeText(getApplicationContext(),"无记录!!!",Toast.LENGTH_SHORT).show();
            czresult.setText("");
        }
    }
    public void findname(View view){
        String sql="select * from user where 姓名=?";
        Cursor cursor = database.rawQuery(sql,new String[]{czname.getText().toString()});
        if(cursor.moveToNext()){
            int bianhao2 = cursor.getInt(cursor.getColumnIndex("编号"));
            String name2 = cursor.getString(cursor.getColumnIndex("姓名"));
            int age2 = cursor.getInt(cursor.getColumnIndex("年龄"));

            czresult.setText("查找结果->编号: "+bianhao2+"\t姓名:"+name2+"\t年龄:"+age2);
        }else {
            Toast.makeText(getApplicationContext(),"无记录!!!",Toast.LENGTH_SHORT).show();
            czresult.setText("");
        }
    }
}


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

4、ListView实现加载适配器,例如下图中适配器的java实现过程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、电子相册的java实现
在这里插入图片描述
在这里插入图片描述
6、 显示当前系统时间java实现
在这里插入图片描述
在这里插入图片描述
7、 点击单选按钮实现选择影片和选座的程序
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
8、 简单对话框的实现
在这里插入图片描述
9、 线程实现显示系统时间
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10、 体重测量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
11、 月球、地球、火星代码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7、UI界面设计填空题

请填写实现下面的按钮点击前后的代码,点击前是玫红色,点击后是天蓝色,见下图:

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

在这里插入图片描述

资料自提(过期请留言)

链接:https://pan.baidu.com/s/18v8Cz1ExauEu3tCRvVd1aw?pwd=j2p9
提取码:j2p9

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值