android常用控件总结
更新时间:2023-06-10 03:05:01 阅读量: 实用文档 文档下载
android 常用控件总结
Android 常用控件总结
(内容包括了Android中的大部分常用控件及其事件的监听)
第一章
1.1 Android中src文件夹包含项目的所有包及其资源文件,res文件夹包含了项目中所有的资源。比如:程序图标(drawable),布局文件(layout),常量(value),音频文件(raw) R.java是在创建项目是自动生成的只读文件,不可更改此文件。R文件其作用:是定义项目中所有资源的索引文件。
1.2 AndroidManfest.xml 如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest //根节点,描述了packege包中所有的内容
xmlns:android="/apk/res/android" //包命名空间的声明,使得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据
package="Android.Summary" //引用程序包名
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="7" /> //使用SDK版本号
<application //包含package中application级别组件声明的根节点,可包含application的一些全局和默认的属性,如标签label,icon,主题,必要的全限。注意:一个manifest中只能包含一个或0个application
android:icon="@drawable/icon" //应用程序图标
android:label="@string/app_name"> //应用程序名字
<activity android:name=".SummaryActivity" //Activity用来与用户交互的主要工具,是用户打开程序的初始界面.此处为引用程序默认启动的Activity
android:label="@string/app_name">
android 常用控件总结
<intent-filter>/ //描述了Activity的启动时间和位置,另外为了支持查找Activity可以包含一个或多个<intent-filter>
<action android:name="android.intent.action.MAIN" /> //acton 为组件支持的Intent action
<category android:name="UNCHER"
/>//categor 为组件支持的Intent category 这里指定了引用程序的默认启动的Activity </intent-filter>
</activity>
<activity android:name = "Activity02"></activity> //在此对新增的Activity进行注册。如果在不同的包中注意声明是将包名带上
</application>
</manifest>
1.3 String.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<resources> //此处定义了两个字符串资源,即定义了app_name,hello常量
<string name="hello">Hello World, SummaryActivity!</string>
<string name="app_name">Summary</string>
</resources>
如何使用这个资源呢?如下:
Resources r = this.getContext().getResources(); //通过Context的
getResource()实例化一个Resources对象
String app_name = ((String)r.getString(R.string.app_name)); //然后通过
getString()方法取得指定的索引的字符串。项目中所有常量都可以在String.xml文件中定义
String hello = ((String)r.getString(R.string.hello));
1.4 main.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="/apk/res/android"//LinearLayout 线程版面配置
android 常用控件总结
android:orientation="vertical" //版面配置的方式。此为自上到下为垂直配置,"horizontal"为水平配置
android:layout_width="fill_parent" //定义当前视图在屏幕上所占的宽度,"fill_parent"为填充整个屏幕宽度
/*android:layout_weight="50"*/ //用于给一个布局中多个视图的重要度赋值
android:layout_height="fill_parent" //定义当前视图在屏幕上所占的高度,...........................高度
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content" //随着视图的栏位的不同而改变这个视图的高度或宽度
android:text="@string/hello" //在视图上显示的内容,此处引用了@String中的hello字符串
/>
</LinearLayout>
1.5 src下的java 如下:
package Android.Summary;
import android.app.Activity;
import android.os.Bundle;
public class SummaryActivity extends Activity { //继承自Activity /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState){ //重写onCreate()方法 super.onCreate(savedInstanceState);
setContentView(yout.main); //设置要显示的布局
}
}
android 常用控件总结
第二章
2.1 Android应用程序由四个模块组成:Activity,Service,Intent,ContentProvider(注意:一个应用程序不一定包含全部的四个模块).
在使用时必须在AandroidManfest中进行声明。
Activity可以理解为用户看到屏幕,主要用于处理应用程序的整体性工作。如: a.监听系统事件,触屏事件,为用户显示指定的View,启动其他Activity等。 b.所有应用的Activity都继承于android.app.Activity,该类是Android提供的基层类。
c.一个Activity通常就是一个单独的屏幕。
d.每一个活动都被实现为一个独立的类。
e.大多数的应用程序都是由多个Activity组成。
Intent Aandroid中主要用Intent类实现从一个Activity跳转到另一个Activity。在Intent的描述结构中,有两个重要的部分:动作和对应的数据。
典型的动作有MAIN,VIEW,PICK,EDIT.而动作对应的数据则以URI的形式表示。例如:要查一个人的联系方式,需要创建一个动作类型View的Intent
,以及一个表示这个人的URI.
Intent的使用:
button1.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
Intent intent = new Intent(); //创建一个Intent对象
intent.setClass(Activity01.this,Activity02.class);//指明要启动的另一Activity02
startActivity(intent); //启动一个新的Activity
Activity01.this.finish(); //关闭当前Activity01
}
});
这里需要注意在Android中对新启动的Activity进行声明。声明方式:
<activity android:name = "Activity02"></activity> //注意:如果在不同的包中在声明是还要加上包名
IntentReceiver
android 常用控件总结
如果希望Android应用能够对外部事件(如电话打入时,数据网络可用时,)做出响应,可用使用IntentReceiver.虽然IntentReceiver在如上事件发生
时会使用NotificationManager通知用户,但它并不能生产UI。IntentReceiver可以在AndroidManifest.xml中注册,也可在代码中使用Context.registerReceiver
进行注册。当IntentReceiver被触发时,系统会在需要的时候启动应用。各种应用还可以通过ContentReceiver()将他们自己的IntentReceiver广播出去。 ???????
Content Provider
作用:主要用于不同应用程序中的数据的传递。
Content Provider 是一个特殊的存储数据的类型。
Android自身提供现成的Content
Provider:Contacts ,Browser,CallLog,Settings,MediaStore
应用可用通过唯一的ContentResolver界面来使用具体的Conten Provider,然后可以用ContentResolver提供的方法来使用你需要的Content Provider
其中,ContentResolver提供的方法有query(),insert(),update()等。
URI----String形式的Content Provider的完整路径。
下面这个这个例子通过ContentProvider获取电话本中的数据,然后显示到TextView中去。
public class Activity01 extends Activity{
public void onCreate(Bundle savedInstanceState){
TextView textView = new TextView(this);//得到TextView对象
String string = "";
super.onCreate(savedInstanceState);
ContentResolver resolver = getContentResolver();//得到ContentResolver对象
Cursor cursor =
resolver.query(ContactsContract.Contacts.CONTENT_URI,null,null,null,null);//取得电话本中开始一项的光标,通过query方法查询出符合标准的电话本记录
//向下移动光标
while(cursor.moveToNext()){
//取得联系人名字
android 常用控件总结
int name_index = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME); String name = cursor.getString(name_index);
//取得电话号码
int number_index = cursor.getColumnIndex(PhoneLookup.NUMBER);
String number = cursor.getString(number_index);
string +=(name+":"+number+"\n");
}
cursor.close();
textView.setText(string);//设置TextView显示的内容
setContentView(textView);//显示到屏幕上 其实TextView也是View的一种 }
}
注意:在使用这些模块中用到了读取联系人的API,所以必须在AndroidManifest.xml中声明
声明方式为:
<uses_permission
android:name="android.permission.READ_CONTACTS">
</uses-permission>
Service 后台服务,没有界面
启动service方法:
a.Context.startService()
b.Context.bindService()//与上一种方法不同处 如果这个Service没有处于启动状态,则将其启动
下面这个例子以Activity中的俩个控件来控制播放一首Mp3. (例中:需要在res文件夹中创建一个raw文件夹 然后放入一首MP3)
public class Activity01 extends Activity{
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(yout.main);
android 常用控件总结
//从main.xml布局中获得Button对象
Button button_start = (Button)findViewById(R.id.start);
Button button_stop = (Button)findViewById(R.id.stop);
//设置按钮(Button)监听
button_start.setOnClickListener(start);
button_stop.setOnClickListener(stop);
}
//开始按钮
private OnClickListener start = new OnClickListener(){
public void onClick(View v){
//开启Service
startService(new Intent("com.yarin.Android.MUSIC"));
}
};
//停止按钮
private OnClickListener stop = new OnClickListener(){
public void onClick(View v){
//停止Service
stopService(new Intent("com.yarin.Android.MUSIC"));
}
};
}
public class MusicService extends Service{
//MediaPlayer对象
private MediaPlayer player;
public IBinder onBind(Intent arg0){
return null;
}
public void onStart(Intent intent, int startId){
super.onStart(intent, startId);
android 常用控件总结
//这里可以理解为装载音乐文件
player = MediaPlayer.create(this, R.raw.test);
//开始播放
player.start();
}
public void onDestroy(){
super.onDestroy();
//停止音乐-停止Service
player.stop();
}
}
AndroidManifest.xml文件中
<service android:name=".MusicService">
<intent-filter>
<action android:name="com.yarin.Android.MUSIC" />
<category android:name="android.intent.category.default" />
</intent-filter>
</service>
2.2 Aandrod的生命周期
public class Activity02 extends Activity{
private static final String TAG = "Activity02";
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(yout.main2);
Log.v(TAG, "onCreate");
}
public void onStart(){
super.onStart();
Log.v(TAG, "onStart");
android 常用控件总结
}
public void onResume(){
super.onResume();
Log.v(TAG, "onResume");
}
public void onPause(){
super.onPause();
Log.v(TAG, "onPause");
}
public void onStop(){
super.onStop();
Log.v(TAG, "onStop");
}
public void onDestroy(){
super.onDestroy();
Log.v(TAG, "onDestroy");
}
public void onRestart(){
super.onRestart();
Log.v(TAG, "onReStart");
}
}
这些方法都是系统自动调用的。
第三章
3.1 事件处理
* 控件事件通过设置其控件的监听器来监听并处理事件
* 按键按下事件:通过重写onKeyDown方法
* 按键弹起事件:通过重写onKeyUp方法
* 触笔点击事件:通过实现onTouchEvent方法
* 示例中使用了Toast控件:
* Toast.makeText(this, string, Toast.LENGTH_SHORT).show();
android 常用控件总结
public class Activity01 extends Activity{
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(yout.main);
//获得Button对象
Button button_ok = (Button) findViewById(R.id.ok);
button_ok.setOnClickListener(new Button.OnClickListener()
{-------------------------------------------------------//设置Button控件监听器 public void onClick(View v){
//这里处理事件
DisplayToast("点击了OK按钮");
}
});
}
/* 按键按下所触发的事件*/
public boolean onKeyDown(int keyCode, KeyEvent event){
switch (keyCode){
case KeyEvent.KEYCODE_DPAD_CENTER:
DisplayToast("按下:中键");
break;
case KeyEvent.KEYCODE_DPAD_UP:
DisplayToast("按下:上方向键");
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
DisplayToast("按下:下方向键");
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
DisplayToast("按下:左方向键");
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
android 常用控件总结
DisplayToast("按下:右方向键");
break;
}
return super.onKeyDown(keyCode, event);
}
/* 按键弹起所触发的事件*/
public boolean onKeyUp(int keyCode, KeyEvent event){
switch (keyCode){
case KeyEvent.KEYCODE_DPAD_CENTER:
DisplayToast("弹起:中键");
break;
case KeyEvent.KEYCODE_DPAD_UP:
DisplayToast("弹起:上方向键");
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
DisplayToast("弹起:下方向键");
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
DisplayToast("弹起:左方向键");
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
DisplayToast("弹起:右方向键");
break;
}
return super.onKeyUp(keyCode, event);
}
//用于响应按键重复点击,官方API指出onKeyMultiple方法总是返回false,即它没有handle,因此必须重写才能实现-------------------此方法没用过具体情况怎么样不是很清楚?
public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event){
return super.onKeyMultiple(keyCode, repeatCount, event);
}
android 常用控件总结
/* 触笔事件*/
public boolean onTouchEvent(MotionEvent event){
int iAction = event.getAction(); //利用getAction得到所执行的动作 if (iAction == MotionEvent.ACTION_CANCEL ||
iAction == MotionEvent.ACTION_DOWN ||
iAction == MotionEvent.ACTION_MOVE){
return false;
}
//得到触笔点击的位置
int x = (int) event.getX();
int y = (int) event.getY();
//将获得的坐标转成String类型的方法
DisplayToast("触笔点击坐标:
("+Integer.toString(x)+","+Integer.toString(y)+")");
return super.onTouchEvent(event);
}
/* 显示Toast */
public void DisplayToast(String str){
Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
}
}
我们分析了一些常用事件处理方式。每一个键都对应一个键值。当然也可根据需要来改变一些键的功能,需要我们自己构建KeyEvent对象------------------有待进一步学习 构造KeyEvent对象的几种方法:
KeyEvent(int action,int code);
KeyEvent(long DownTime,long EventTime,int action,int code,int repeat); KeyEvent(long DownTime,long EventTime,int action,int code,int repeat,int metState);
KeyEvent(long DownTime,long EventTime,int action,int code,int repeat,int metState,int device,int scancode);
android 常用控件总结
KeyEvent(long DownTime,long EventTime,int action,int code,int repeat,int metState,int device,int scancode,int flags);
KeyEvent(KeyEvent origEvent,long EventTime,int newRepart);
例:
public class Activity01 extends Activity{
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(yout.main);
}
public boolean onKeyDown(int keyCode, KeyEvent event){
//这里构建KeyEvent对象,其功能为返回键的功能
//因此我们按任意键都会执行返回键功能
KeyEvent key = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);
//这里传入的参数就是我们自己构建的KeyEvent对象key
return super.onKeyDown(key.getKeyCode(), key);
}
}
3.2 常用控件
Button
xml设计
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
></Button>
代码设计Button button = new Button(this);
button.setText("我是Button");
button.setWidth(123); //设置宽度
button.setHeight(123); //设置高度
button.setTextColor(Color.BLUE); //设置文字颜色
button.setTextSize(123); //设置字体大小
android 常用控件总结
button.setBackgroundColor(Color.BLUE); //设置控件背景色
监听器
button.setOnClickListener(new Button.OnClickListener(){//设置按钮的事件监听
public void onClick(View v){
//处理按钮事件产生一个Toast.利用button.getText()得到按钮显示的内容 Toast toast = Toast.makeText(Activity01.this, "你点击了
“"+button.getText()+"”按钮!", Toast.LENGTH_LONG);
//设置toast显示的位置
toast.setGravity(Gravity.TOP, 0, 150);
//显示该Toast
toast.show();
}
});
-----------------------------------------------------------------------------------------------------------------------------
TextView 一个用来显示文本的控件
xml设计<TextView
android:id= "@+id/textView" //设置id
android:layout_width ="fill_parent" //宽度充满全屏
android:layout_height="wrap_content" //高度随控件变化
android:layout_height="2dip"
android:textColor=""
android:background="#aaa00" //背景颜色
android:text="你好"/>
android:paddingLeft="50px"
android:paddingTop="5px"
android:paddingBottom="5px"
android:textSize="30sp"
android:singleLine="true"
android:layout_below="@id/imageView_handler"//在什么下
android:gravity ="left" //用于设置View中内容相对于View组件的对齐方式,
android 常用控件总结
android:layout_gravity//用于设置View组件相对于Container的对齐方式。 android:paddingLeft="30px" // 按钮上设置的内容离按钮左边边界30个像素 android:layout_marginLeft="30px" //整个按钮离左边设置的内容30个像素 android:layout_weight="1"//控件权重 即占的比例 默认值为0
android:gravity="center_horizontal"//水平居中
android:padding="3dip"
代码设计TextView textView = new TextView(this); //声明对象
textView.setTextColor(Color.RED); //设置字体颜色
textView.setTextSize(20); //设置字体大小
textView.setBackgroundColor(Color.BLUE);//控件背景色
textView.setText("你好") //显示的文字
textView.setHeight
textView.setWidth
textView.setVisibility(GONE/VISIBLE); //设置为不可见/可见
textView.setGravity(Gravity.CENTER);//设置文字权重
监听器TextView textView = new TextView(this); //得到对象
textview.setOnClickListener(new
TextView.OnClickListener(){-------------------------------------------TextView监听器
public void onClick(View v){
}
});
-------------------------------------------------------------------------------------------------------------------------------
ImageButton 带图标的按钮
xml设计
<ImageButton
android:id= "@+id/imageButton1"
android 常用控件总结
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/qq" //在xml设计所使用的图片
/>
代码中设计
imageButton.setImageDrawable(getResources().getDrawable(R.drawable.image2));//在代码中设计使用的图片(得到对象后)
监听器
imageButton.setOnClickListener(new Button.OnClickListener()
{---------------------------------------------ImageButton监听器
@Override
public void onClick(View v) {
//创建对话框
Dialog dialog = new AlertDialog.Builder(ImageButton_Dialog.this) .setTitle("ImageButton2")
.setMessage("跳转到系统图片")
.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
imageButton2.setImageDrawable(getResources().getDrawable(android.R.drawable.sym_action_call));
}
}).create();
dialog.show();
}
});
-------------------------------------------------------------------------------------------------------------------------------
EditText
android 常用控件总结
xml设计
<EditText
android:id="@+id/editText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_x="29px"
android:layout_y="33px"
android:hint="请输入账号" //设置当m_EditText中为空时提示的内容
/>
代码设计EditText editText = new EditText(this);//得到EditText对象 editText.setTextSize(20); //设置字体大小
editText.setHint("请输入账号"); //设置当m_EditText中为空时提示的内容 监听器
editText.setOnKeyListener(new
EditText.OnKeyListener(){-----------------------------------------EditText监听器
@Override
public boolean onKey(View arg0, int arg1, KeyEvent arg2){
// 得到文字,将其显示到TextView中
m_TextView.setText("文本框中内容是:" + m_EditText.getText().toString()); return false;
}
});
-----------------------------------------------------------------------------------------------------------------
CheckBox 多项选择 需要对没有按钮设置监听器
xml设计
<CheckBox
android:id="@+id/checkBox"
android:layout_width="fill_parent"
android 常用控件总结
android:text="@string/CheckBox4"
>
监听器
checkBox1.setOnCheckedChangeListener(new CheckBox.OnCheckedChangeListener() {//对每个选项设置事件监听-------------------CheckBox监听器
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked){ if(m_CheckBox1.isChecked()){
DisplayToast("你选择了:"+m_CheckBox1.getText());
}
}
});
-------------------------------------------------------------------------------------------------------------------
Spinner 下拉列表
下面一个例子将可选内容通过ArrayAdapter和下拉列表连接起来。设置监听器 通过setVisibility方法设置当前显示项
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="/apk/res/android" android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/TextView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<Spinner
android:id="@+id/Spinner1"
android 常用控件总结
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
/>
</LinearLayout>
public class Activity01 extends Activity{
private static final String[] string = { "O型", "A型", "B型", "AB型", "其他" };
private TextView m_TextView;
private Spinner m_Spinner;
private ArrayAdapter<String> adapter;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(yout.main);
m_TextView = (TextView) findViewById(R.id.TextView1);
m_Spinner = (Spinner) findViewById(R.id.Spinner1);
//将可选内容与ArrayAdapter连接
adapter = new ArrayAdapter<String>(this,
yout.simple_spinner_item, string);
//设置下拉列表的风格
adapter.setDropDownViewResource(yout.simple_spinner_dropdown_item);
//将adapter添加到m_Spinner中
m_Spinner.setAdapter(adapter);
android 常用控件总结
//添加Spinner事件监听
m_Spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {--------------------------Spinner监听器
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3){
m_TextView.setText("你的血型是:" + string[arg2]);
//设置显示当前选择的项
arg0.setVisibility(View.VISIBLE);
}
@Override
public void onNothingSelected(AdapterView<?> arg0){
// TODO Auto-generated method stub
}
);
}
}
}
------------------------------------------------------------------------------------------------------
RadioGroup , RadioButton 单选选择控件
一个单选选择由两部分组成,分别是前面的选择按钮和后面的内容。按钮通过RadioButton来实现,答案通过RadioGroup来实现
如果确定是选择哪一项那就要设置监听器setOnCheckedChangeListener.
下面有一例子:本例中使用到了String.xml文件来定义常量。
string.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Android底层是基于什么操作系统?</string>
<string name="app_name">Examples_04_07</string>
<string name="RadioButton1">Windows</string>
android 常用控件总结
<string name="RadioButton2">Linux</string>
<string name="RadioButton3">Moc os</string>
<string name="RadioButton4">Java</string>
</resources>
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="/apk/res/android" android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/TextView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<RadioGroup
android:id="@+id/RadioGroup01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_x="3px"
android:layout_y="54px"
>
<RadioButton
android:id="@+id/RadioButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/RadioButton1"
/>
<RadioButton
正在阅读:
android常用控件总结06-10
风电场化学监督管理标准05-22
3.资产评估执业准则 - 资产评估报告01-24
学生心理辅导记载表06-13
18年青岛一模理综化学12-04
金融机构不良债权转让问题的几个案例06-18
国有公司(企业)基本管理制度03-12
浅析完美服务与顾客的忠诚度07-03
CDS LTE 7.1快速使用说明 v1.2 - 图文12-30
北医药理学例题库10-04
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 控件
- 常用
- android
- 总结
- 品牌管理理论介绍及个案分析
- 太平洋战争的转折点--中途岛海战
- Microsoft Office SharePoint Server 入门
- EDZTE615.6B中文资料
- 如何做个高效的基层管理者
- 教学工作副校长岗位职责
- 银保网点晨会操作
- 《短 歌 行》微格教案
- 浅谈水稻高产种植技术
- 力生制药:内部审计制度(2010年5月) 2010-05-19
- 日产1200吨煤棒项目可研正文
- 库管业务报告 Microsoft Word 文档
- 九年级物理全册 第16章 第三节 电阻教案 (新人教版)
- 价值观是殡葬业发展的人文支撑——美国、加拿大殡葬服务业考察的几点思考
- 紫微斗数斗数长生十二宫秘法
- 敏捷开发和scrum学习
- 教育学知识点总结
- 原辅材料及包装材料采购管理制度
- 唐山钢铁产能汇总
- 乡镇干部个人党风廉政建设心得体会