Android Studio期末复习--复盘

07-03 999阅读

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、这是一个资源配置文件,下面描述正确的是?

 
	 

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的生命周期图例,矩形框中的方法顺序,见下图所示:

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    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(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):

        
    
    

    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):

    
    

    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实现代码,如下图所示:

    Android Studio期末复习--复盘

    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("");
            }
        }
    }
    

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    4、ListView实现加载适配器,例如下图中适配器的java实现过程

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    5、电子相册的java实现

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    6、 显示当前系统时间java实现

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    7、 点击单选按钮实现选择影片和选座的程序

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    8、 简单对话框的实现

    Android Studio期末复习--复盘

    9、 线程实现显示系统时间

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    10、 体重测量

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    11、 月球、地球、火星代码

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    7、UI界面设计填空题

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

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    Android Studio期末复习--复盘

    资料自提(过期请留言)

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

    提取码:j2p9

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]