Android 基础知识 十三

本文深入探讨了Android程序开发的基本框架,从XML命名空间xmlns:android的用途开始,到高级界面与低级界面的对比,详细介绍了Activity生命周期、菜单管理、内部类的应用,并通过简单的AndroidListView示例展示了界面构建过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

xmlns:android的作用

xmlns:android是一个XML命名空间,告诉 Android开发工具你准备使用Android命名空间里的一些通用属性。在所有Android XML设计文件中最外层的标记必须使用这个树形。
它可以提示你输入什么,不该输入什么,什么是对的,什么是错的,也可以理解为语法文件。或者语法判断器什么的。
?
代码片段,双击复制
01
02
03
04
05
06
07
08
<?xml version= "1.0" encoding= "utf-8" ?>
<TextView xmlns:android= "http://schemas.android.com/apk/res/android"
android:id= "@+id/text"
android:layout_width= "match_parent"
android:layout_height= "match_parent"
android:gravity= "center_vertical|center_horizontal"
android:text= "translucent_background"
/>


?
代码片段,双击复制
01
02
03
04
05
06
07
<?xml version= "1.0" encoding= "utf-8" ?>
<manifest xmlns:android= "http://schemas.android.com/apk/res/android"
package = "org.com.fblife"
android:versionCode= "1"
android:versionName= "1.0" >
......
</manifest>

-----------------------------------------------------------------
Android程序开发的基本框架研究了一个礼拜的android,算是基本搞清了它的开发框架,我是做j2me开发的,所以时不时的会把它和j2me做比较,比如:高级界面,低级界面...
?
代码片段,双击复制
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
public class App extends Activity {
public App () {
// 构造函数不用说了
}
 
public void onCreate(Bundle savedInstanceState) { // 界面初始化的时候调用
super .onCreate(savedInstanceState);
setContentView(R.layout.skeleton_activity); // 显示布局界面,xml有定义,指高级界面。
 
// setContentView(new MyView(this)); // 显示布局界面,指低级界面,MyView它是内部类,后面有介绍。
 
// 以下是其他数据初始化
......
}
 
public boolean onCreateOptionsMenu(Menu menu) { // 初始化Menu菜单选择项
super .onCreateOptionsMenu(menu);
 
//添加菜单项,比如:
 
menu.add( 0 , OK_ID, 0 , R.string.ok).setShortcut( '2' , 'v' ); // 设置快捷键
//添加其他菜单项。。。。。。
return true ;
}
 
public boolean onPrepareOptionsMenu(Menu menu) { //
super .onPrepareOptionsMenu(menu);
 
//这里可以事先设置菜单的可见性,如果都可见,可以不设置
 
menu.findItem(OK_ID).setVisible( true ); //设置菜单项可见性
return true ;
}
 
public boolean onOptionsItemSelected(MenuItem item) { //选择了一个菜单项的时候调用
 
//这里可以预先处理想要的变量
switch (item.getItemId()) {
case BACK_ID: //一项一项的处理想要做的,不用我介绍了吧
 
 
return true ;
 
.............
}
 
return super .onOptionsItemSelected(item);
}
 
//以下是内部类MyView,如果你用的是高级界面(基于xml),此类可以不要;如果是低级界面嘛,你说呢?
 
public class MyView extends View(){
 
public MyView(Context c){
 
super (c);
 
//初始化其他东西。。。。。
 
}
 
protected void onSizeChanged( int w, int h, int oldw, int oldh) { //不常用,可不写。
super .onSizeChanged(w, h, oldw, oldh);
}
 
protected void onDraw(Canvas canvas) { //几乎必需写
canvas.drawXXX();
 
 
//invalidate();//如果有动画,则必需加上。
}
 
public boolean onTouchEvent(MotionEvent event) {
//触摸前做点什么
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
invalidate(); //如果要动画或刷新,则加上这句;通常这里好像都要加上的;下同
break ;
case MotionEvent.ACTION_MOVE:
invalidate();
break ;
case MotionEvent.ACTION_UP:
invalidate();
break ;
}
return true ;
}
}
 
}
}

--------------------------------------------------------
最简单的Android ListView
?
代码片段,双击复制
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package com.epoint.listview;
 
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
 
public class Main extends ListActivity {
/**
* 注意本程序没有按通常的写法为Activity加载一个布局文件,
* 而是通过setListAdapter(adapter)自动添加一个ListView填充整个ListActivity
*
*/
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setTitle( "最简单的ListView" );
String[] numbers = new String[] { "Zero" , "First" , "Scound" , "Three" ,
"Four" , "Five" , "Six" , "Seven" , "Seven" , "Seven" };
 
/**
* 第一个参数:当前的上下文
* 第二个参数:每个列表项的布局文件
* 第三个参数:参数
* Tip:你可以使用android.R.layout.simple_list_item_1代替R.layout.list_item,改变ListView显示的样式
*/
 
ArrayAdapter<String> adapter = new ArrayAdapter<String>( this ,
R.layout.list_item, numbers);
setListAdapter(adapter); // 将adapter放入ListView中
ListView listview = getListView();
/**
* The setTextFilterEnabled(boolean) method turns on text filtering for
* the ListView, so that when the user begins typing, the list will be
* filtered.不太明白什么意思?
*/
listview.setTextFilterEnabled( true );
// 设置ListView的监听事件
listview.setOnItemClickListener( new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String s = ((TextView) view).getText().toString();
Toast.makeText(getApplicationContext(), s, Toast.LENGTH_SHORT)
.show();
}
});
}
}


list_item.xml
?
代码片段,双击复制
01
02
03
04
05
06
07
<?xml version= "1.0" encoding= "utf-8" ?>
<TextView xmlns:android= "http://schemas.android.com/apk/res/android"
android:layout_width= "fill_parent"
android:layout_height= "fill_parent"
android:padding= "10dp"
android:textSize= "16sp"
/>
标题基于SpringBoot的在线网络学习平台研究AI更换标题第1章引言介绍基于SpringBoot的在线网络学习平台的研究背景、意义、国内外现状、论文研究方法及创新点。1.1研究背景与意义阐述在线网络学习平台的重要性及其在教育领域的应用价值。1.2国内外研究现状分析当前国内外在线网络学习平台的发展状况及趋势。1.3研究方法与创新点说明本研究采用的方法论和在研究过程中的创新之处。第2章相关理论技术概述SpringBoot框架、在线教育理论及相关技术基础。2.1SpringBoot框架概述介绍SpringBoot框架的特点、优势及其在Web应用中的作用。2.2在线教育理论阐述在线教育的基本理念、教学模式及其与传统教育的区别。2.3相关技术基础介绍开发在线网络学习平台所需的关键技术,如前端技术、数据库技术等。第3章在线网络学习平台设计详细描述基于SpringBoot的在线网络学习平台的整体设计方案。3.1平台架构设计给出平台的整体架构图,并解释各个模块的功能及相互关系。3.2功能模块设计详细介绍平台的主要功能模块,如课程管理、用户管理、在线考试等。3.3数据库设计说明平台的数据库设计方案,包括数据表结构、数据关系等。第4章平台实现与测试阐述平台的实现过程及测试方法。4.1平台实现详细介绍平台的开发环境、开发工具及实现步骤。4.2功能测试对平台的主要功能进行测试,确保功能正常且符合预期要求。4.3性能测试对平台的性能进行测试,包括响应时间、并发用户数等指标。第5章平台应用与分析分析平台在实际应用中的效果及存在的问题,并提出改进建议。5.1平台应用效果介绍平台在实际教学中的应用情况,包括用户反馈、使用情况等。5.2存在问题及原因分析分析平台在运行过程中出现的问题及其原因,如技术瓶颈、用户体验等。5.3改进建议与措施针对存在的问题提出具体的改进建议和措施,以提高平台的性能和用户满意度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值