>
更新时间:2023-03-14 00:45:01 阅读量: 教育文库 文档下载
移动应用开发技术
实 训 指 导 书
2013年4月
实训一 简单的Activity
实训要求:
了解Android应用开发的过程 掌握Android中资源的使用方法
了解常用组件的使用方法与事件处理过程 实训内容:
1、 创建Android应用,包含一张图片,在资源中准备4张图片,默认显示第一张图片,点击图片,实现图片自动顺序轮换。 1) 准备4张图片放到资源文件中。
2) 使用ImageView显示第一张图片,为ImageView添加ID。 3) 为ImageView添加事件,实现图片轮换
实验步骤及代码:
1、 新建Android项目,对MainActivity的布局视图进行修改,删除原来的TextView组件,添加ImageView组件,ID设置为imagev1 2、 在MainActivity的类中添加成员变量 private int[] imgs = {
R.drawable.an1, R.drawable.an2, R.drawable.an3, R.drawable.an4 };
private int p=0; //代表图片组件显示的是第几张图片 3、 在MainActivity的onCreate方法中添加代码
final ImageView mv = (ImageView) findViewById(R.id.imageView1);
mv.setOnClickListener(new OnClickListener() { });
@Override
public void onClick(View v) { }
p=++p%imgs.length;
mv.setImageResource(imgs[p]);
实训二 Android基本组件(布局)
掌握相对布局的常用XML属性 掌握线性布局的常用XML属性 实训内容:
1、 使用相对布局结合TextView和EditText、Button完成用户登录界面的设计 2、 为登录按钮添加事件处理,判断用户是否等于abc,完成对简单的登录事件的处理
实训步骤与代码:
1、 使用相对布局的方式对组件进行布局,布局文件的内容如下
xmlns:android=\ android:layout_width=\ android:layout_height=\ android:padding=\ > android:id=\ android:layout_width=\ android:layout_height=\ android:text=\ style=\ android:autoLink=\ /> android:id=\ android:layout_width=\ android:layout_height=\ android:layout_below=\ android:inputType=\ /> android:id=\ android:layout_width=\ android:layout_height=\ android:text=\ android:layout_below=\ android:layout_alignParentRight=\ android:background=\ /> android:id=\ android:layout_width=\ android:layout_height=\ android:text=\ android:layout_below=\ android:layout_toLeftOf=\ /> 2.在Activity的OnCreate方法中添加相应的代码,对用户名进行判断 Button btnOk=(Button)findViewById(R.id.ok); final EditText et=(EditText)findViewById(R.id.in); btnOk.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { }}); String str=et.getText().toString(); if(str.equals(\{ } Log.v(“Login”,”成功”); 实训三 用户常用组件 实训要求: 掌握常用组件ImageView和Button的属性 掌握常用组件的事件处理 实训内容: 1)使用相对布局,在界面上显示一个ImageView组件,显示一个图片,在图片下方添加两个按钮“+”、“-”。 2)点击按钮+或-,动态修改图片的透明度,每次点击的变化为10。 实训步骤及代码: 1、 在布局界面上放置一个ImageView组件,并指定一个图片资源作为显示的内容,id为imgv,在图片下方添加两个Button按钮,ID分别为add和sub。 xmlns:android=\ android:layout_width=\ android:layout_height=\ > android:id=\ android:layout_width=\ android:layout_height=\ android:layout_centerHorizontal=\ android:scaleType=\ /> android:id=\ android:layout_width=\ android:layout_height=\ android:layout_alignLeft=\ android:layout_below=\ android:text=\ android:id=\ android:layout_width=\ android:layout_height=\ android:layout_alignRight=\ android:layout_below=\ android:text=\ 2、在Activty的类成员中添加一个int型变量alpha,描述当前图片的透明度。 在Activity的onCreate方法中添加以下的代码 Button add=(Button)findViewById(R.id.add); final Button sub=(Button)findViewById(R.id.sub); final ImageView im=(ImageView)findViewById(R.id.imgv); sub.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { }}); @Override public void onClick(View arg0) { alpha+=10; }}); im.setAlpha(alpha); alpha-=10; im.setAlpha(alpha); if(alpha<0) sub.setEnabled(false); add.setOnClickListener(new OnClickListener(){ 实训四 ListView的使用 实训要求: 掌握ArrayAdapter创建ListView,显示自定义的列表 实训内容: 要求根据Android短信应用的显示界面,模拟实现10条短信列表的显示。 实训步骤及代码: 1、 在主界面的布局添加ListView组件,id= messageList 2、定义单条信息的布局文件,放置相应的组件,并准备5-7个图片作为短信息联系人的头像。 3、在类成员中定义头像资源的数组和一个随机数生成器 int []imgs={ R.drawable.tu1, R.drawable.tu2, R.drawable.tu3, R.drawable.tu4, R.drawable.tu5, R.drawable.tu6, R.drawable.tu7 }; Random random=new Random(); 4、然后在OnCreate方法中添加相关的代码实现此功能。 ListView lv = (ListView) findViewById(R.id.messageList); ArrayList> data = new ArrayList>(); //以下循环生成10条信息记录,并添加到data中 for(int i=0;i<=10;i++){ Map map = new HashMap(); int r=random.nextInt(imgs.length);//随机头像索引 map.add(“pic”,r); map.put(\map.put(\”10:13”); map.put(\”这是短消息的内容”); data.add(map); } SimpleAdapter adapter = new SimpleAdapter(this, data,// 这是数据 R.layout.onemessage,// 每一项用哪个布局来显示 new String[] { \new int[] { //map中的key R.id.mobile, R.id.mtime, R.id.mcontent,R.id.picid} //单项信息界面上的组件的ID,与map的key相对应 ); lv.setAdapter(adapter); //为listview指定adapter。 实训五 Menu、Dialog的使用 实训要求: 掌握Menu的创建与事件的处理 掌握AlertDialog简单对话框的使用 实训内容: 创建Activie创建选项菜单,加入退出选项,点击菜单项,弹出确认对话框,文字为标题为“确认”,内容:“你需要退出么?”,点击确认退出应用程序。 实训步骤及代码: 1、 定义菜单定义文件sys.xml 2、在Activity中添加相应的方法 @Override public boolean onCreateOptionsMenu(Menu menu) { } @Override public boolean onOptionsItemSelected(MenuItem item) { int menuid=item.getItemId(); switch(menuid) { case R.id.exit: AlertDialog dialog=new AlertDialog.Builder(this) .setTitle(\确认\.setMessage(\你确定要退出么?\.setIcon(R.drawable.ic_launcher) getMenuInflater().inflate(R.menu.sys,menu); //菜单资源文件转换成return true; 菜单项加载 } } .setPositiveButton(\确定\ }) .setNegativeButton(\取消\.create(); dialog.show(); break; @Override public void onClick(DialogInterface dialog, int which) { } MainActivity.this.finish(); return super.onOptionsItemSelected(item); 实训六 Notification、Intent 实训要求: 掌握Toast对象的创建与使用。 掌握Notification对象的创建和创建自定义的通知。 实训内容: 创建一个简单的布局,添加一个按钮,并为按钮添加相应的处理事件,点击按钮用Toast显示“请等待一会儿”这样的字符。 添加第二个按钮,为按钮添加点击处理事件,点击后在通知栏内添加一个消息提示,tickerText, 来消息啦,通知栏标题是“好消息”,内容文字:“免费抢书啦!”。如点击将启动一个新的Activity。 实训步骤及代码: 在MainActivity的onCreate方法中为第一个按钮onClick事件添加相应的代码 Toast toa=Toast.makeText(this,” 请等待一会儿”,Toast.LENGTH_LONG); toa.show(); 第二个按钮的onClick相关代码 Notification no=new Notification(); no.tickerText=\来消息啦!\通告来临时,显示在最上面,一会儿就消失 no.icon=R.drawable.tu2;//显示图标 no.when=System.currentTimeMillis(); no.flags = Notification.FLAG_AUTO_CANCEL; Intent intent=new Intent(MainActivity.this,Tips.class); PendingIntent pend=PendingIntent.getActivity(MainActivity.this, 0, intent, 0); no.setLatestEventInfo(MainActivity.this, \好消息\免费抢书啦!\ //好消息:是在通告栏打开时,这个通告的标题 //免费抢书啦!:是在通告栏打开时,这个通告的内容 NotificationManager fmrg=(NotificationManager) getSystemService(NOTIFICATION_SERVICE); fmrg.notify(0,no); 实训七 Android数据存储 实训要求: 掌握Android中使用SharedPreferences保存配置和读取配置的方法。 实训内容: 创建一个Activity,使用SharedPreferences对象保存程序运行的次数和上次运行的时间,并用TextView显示出来。要求: 1) 第一次运行,显示:你首次运行App! 2) 后续运行,显示:你第x次运行App,上次运行时间:xxxx-xx-xx 3) 添加一个“退出”按钮,点击退出结束Activity的运行 实训步骤及代码: public class MainActivity extends Activity { private TextView hi; private int count; private static final String CONFIG = \@Override protected void onCreate(Bundle savedInstanceState) { } @Override protected void onStop() { super.onStop(); SharedPreferences setting = getSharedPreferences(CONFIG, super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); hi = (TextView) findViewById(R.id.hi); SharedPreferences setting = getSharedPreferences(CONFIG, Context.MODE_PRIVATE); count = setting.getInt(\String date = setting.getString(\if (count > 0) { hi.setText(\第\+ (count + 1) + \次使用APP!\+ \上次使用:\+ date); } else { } hi.setText(\第\次使用APP!\ Context.MODE_PRIVATE); Date d = new Date(); SimpleDateFormat sdf = new SimpleDateFormat(\年MM月dd日 HH:mm:ss\ } } String str = sdf.format(d); count++; setting.edit().putInt(\count).putString(\str).commit(); 实训八 Sqlite数据存储 实训要求: 1)掌握Sqlite数据库的使用方法 2)掌握SqliteOpenHelper的使用方法 3)进一步掌握选项菜单的创建 实训内容: 创建一个Android日记本应用,采用Sqlite数据库作为信息的存储,使用SqliteOpenHelper操作数据库。要求结合菜单能对日记进行添加和删除。 实训步骤及相关代码: (1)为Sqlite数据库创建助手类,继承SqliteOpenHelper public class DatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME=\数据库名 private static final int DATABASE_VERSION=1; private static final String DATABASE_TABLE=\表名 //分别是表中的4个字段名, private static final String KEY_ID=\ KEY_TITLE=\public DatabaseHelper(Context context) { } @Override public void onCreate(SQLiteDatabase db) { super(context,DATABASE_NAME,null,DATABASE_VERSION); String sql=\ \ db.execSQL(sql); } (2)创建自己的数据操作类,完成日记记录的添、删、改功能。 public class DiaryDbAdapter { private static final String DATABASE_TABLE=\表名 } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } //分别是表中的4个字段名, private static final String KEY_ROWID=\ KEY_TITLE=\private SQLiteDatabase db; private DatabaseHelper helper; private Context context; public DiaryDbAdapter(Context context) { } public void open() { } public void close(){ } public void createDiary(String title,String body) { Date d=new Date(); helper.close(); helper=new DatabaseHelper(context); db=helper.getWritableDatabase(); this.context=context; SimpleDateFormat sdf=new SimpleDateFormat(\年MM月dd日HH时mm分\ String da=sdf.format(d); } db.execSQL(\ new Object[]{title,body,da} ); //删除指定记录 public boolean deleteDiary(long rowId) { } public Cursor getAllNotes(){ Cursor cursor=db.query(DATABASE_TABLE, new String[]{KEY_ROWID,KEY_TITLE,KEY_BODY,KEY_CREATED},null, null, return db.delete(DATABASE_TABLE, KEY_ROWID+\null, null,null); } return cursor; public boolean updateDiary(long rowId,String title,String body) { Date d=new Date(); SimpleDateFormat sdf=new SimpleDateFormat(\年MM月dd日HH时mm分\ String created=sdf.format(d); ContentValues args=new ContentValues(); return db.update(DATABASE_TABLE, args, KEY_ROWID+\} (3)设计界面,调用数据操作类实现功能。 实训九 组件通讯与广播 实训要求: 掌握广播的定义与处理过程,通过广播来触发通知栏显示内容。 实训内容: 定义广播接收者,在Activity中用按钮触发一个广播事件,接收者在系统的通知栏中显示相应的信息(标题:广播消息,内容:新的广播消息) 实训步骤及相关代码: (1) 编写广播接收者类MyReceiver继承于BroadcastReceiver public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context arg0, Intent arg1) { Bundle extras = arg1.getExtras(); String str =extras.getString(\Toast.makeText(arg0, \我收到你的消息:\ } } (2) AndroidManifest.xml文件定义 android:name=\ android:enabled=\ android:exported=\ (3) Activity发出广播消息 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt1=(Button)findViewById(R.id.button1); et=(EditText)findViewById(R.id.editText1); bt1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(\ Bundle extras=new Bundle(); extras.putString(\ } intent.putExtras(extras); sendBroadcast(intent); } }); 实训十 使用Service 实训要求: 熟悉Service的概念 掌握Service的定义与运行过程 实训内容: 创建一个Service,实现MP3播放器,分别处理Service相应的方法。要求:实现MP3的播放、停止功能。 实训步骤及相关代码: (1) 继承Service来实现自己的服务MyService public class MyService extends Service { } private MediaPlayer player; @Override public IBinder onBind(Intent arg0) { } @Override public void onCreate() { } @Override public int onStartCommand(Intent intent, int flags, int startId) { } @Override public void onDestroy() { } super.onDestroy(); player.stop(); Log.v(\服务销毁....\Log.v(\服务启动...\return super.onStartCommand(intent, flags, startId); super.onCreate(); player=MediaPlayer.create(this, R.raw.cnhk); player.start(); Log.v(\服务创建....\return null; (2) 在AndroidManifest.xml中注册服务 (3) 在Activity中启动服务 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); b1=(Button)findViewById(R.id.button1); b2=(Button)findViewById(R.id.button2); b1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //启用服务,服务与广播相似度很高,通过Action来指定服务 Intent intent=new Intent(\ startService(intent); } }); b2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(\ stopService(intent); } }); } 本文来源:https://www.bwwdw.com/article/162x.html
android:id=\
android:layout_width=\ android:layout_height=\ android:text=\ style=\
android:autoLink=\ /> android:id=\ android:layout_width=\ android:layout_height=\ android:layout_below=\ android:inputType=\ /> android:id=\ android:layout_width=\ android:layout_height=\ android:text=\ android:layout_below=\ android:layout_alignParentRight=\ android:background=\ /> android:id=\ android:layout_width=\ android:layout_height=\ android:text=\ android:layout_below=\ android:layout_toLeftOf=\ /> 2.在Activity的OnCreate方法中添加相应的代码,对用户名进行判断 Button btnOk=(Button)findViewById(R.id.ok); final EditText et=(EditText)findViewById(R.id.in); btnOk.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { }}); String str=et.getText().toString(); if(str.equals(\{ } Log.v(“Login”,”成功”); 实训三 用户常用组件 实训要求: 掌握常用组件ImageView和Button的属性 掌握常用组件的事件处理 实训内容: 1)使用相对布局,在界面上显示一个ImageView组件,显示一个图片,在图片下方添加两个按钮“+”、“-”。 2)点击按钮+或-,动态修改图片的透明度,每次点击的变化为10。 实训步骤及代码: 1、 在布局界面上放置一个ImageView组件,并指定一个图片资源作为显示的内容,id为imgv,在图片下方添加两个Button按钮,ID分别为add和sub。 xmlns:android=\ android:layout_width=\ android:layout_height=\ > android:id=\ android:layout_width=\ android:layout_height=\ android:layout_centerHorizontal=\ android:scaleType=\ /> android:id=\ android:layout_width=\ android:layout_height=\ android:layout_alignLeft=\ android:layout_below=\ android:text=\ android:id=\ android:layout_width=\ android:layout_height=\ android:layout_alignRight=\ android:layout_below=\ android:text=\ 2、在Activty的类成员中添加一个int型变量alpha,描述当前图片的透明度。 在Activity的onCreate方法中添加以下的代码 Button add=(Button)findViewById(R.id.add); final Button sub=(Button)findViewById(R.id.sub); final ImageView im=(ImageView)findViewById(R.id.imgv); sub.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { }}); @Override public void onClick(View arg0) { alpha+=10; }}); im.setAlpha(alpha); alpha-=10; im.setAlpha(alpha); if(alpha<0) sub.setEnabled(false); add.setOnClickListener(new OnClickListener(){ 实训四 ListView的使用 实训要求: 掌握ArrayAdapter创建ListView,显示自定义的列表 实训内容: 要求根据Android短信应用的显示界面,模拟实现10条短信列表的显示。 实训步骤及代码: 1、 在主界面的布局添加ListView组件,id= messageList 2、定义单条信息的布局文件,放置相应的组件,并准备5-7个图片作为短信息联系人的头像。 3、在类成员中定义头像资源的数组和一个随机数生成器 int []imgs={ R.drawable.tu1, R.drawable.tu2, R.drawable.tu3, R.drawable.tu4, R.drawable.tu5, R.drawable.tu6, R.drawable.tu7 }; Random random=new Random(); 4、然后在OnCreate方法中添加相关的代码实现此功能。 ListView lv = (ListView) findViewById(R.id.messageList); ArrayList> data = new ArrayList>(); //以下循环生成10条信息记录,并添加到data中 for(int i=0;i<=10;i++){ Map map = new HashMap(); int r=random.nextInt(imgs.length);//随机头像索引 map.add(“pic”,r); map.put(\map.put(\”10:13”); map.put(\”这是短消息的内容”); data.add(map); } SimpleAdapter adapter = new SimpleAdapter(this, data,// 这是数据 R.layout.onemessage,// 每一项用哪个布局来显示 new String[] { \new int[] { //map中的key R.id.mobile, R.id.mtime, R.id.mcontent,R.id.picid} //单项信息界面上的组件的ID,与map的key相对应 ); lv.setAdapter(adapter); //为listview指定adapter。 实训五 Menu、Dialog的使用 实训要求: 掌握Menu的创建与事件的处理 掌握AlertDialog简单对话框的使用 实训内容: 创建Activie创建选项菜单,加入退出选项,点击菜单项,弹出确认对话框,文字为标题为“确认”,内容:“你需要退出么?”,点击确认退出应用程序。 实训步骤及代码: 1、 定义菜单定义文件sys.xml 2、在Activity中添加相应的方法 @Override public boolean onCreateOptionsMenu(Menu menu) { } @Override public boolean onOptionsItemSelected(MenuItem item) { int menuid=item.getItemId(); switch(menuid) { case R.id.exit: AlertDialog dialog=new AlertDialog.Builder(this) .setTitle(\确认\.setMessage(\你确定要退出么?\.setIcon(R.drawable.ic_launcher) getMenuInflater().inflate(R.menu.sys,menu); //菜单资源文件转换成return true; 菜单项加载 } } .setPositiveButton(\确定\ }) .setNegativeButton(\取消\.create(); dialog.show(); break; @Override public void onClick(DialogInterface dialog, int which) { } MainActivity.this.finish(); return super.onOptionsItemSelected(item); 实训六 Notification、Intent 实训要求: 掌握Toast对象的创建与使用。 掌握Notification对象的创建和创建自定义的通知。 实训内容: 创建一个简单的布局,添加一个按钮,并为按钮添加相应的处理事件,点击按钮用Toast显示“请等待一会儿”这样的字符。 添加第二个按钮,为按钮添加点击处理事件,点击后在通知栏内添加一个消息提示,tickerText, 来消息啦,通知栏标题是“好消息”,内容文字:“免费抢书啦!”。如点击将启动一个新的Activity。 实训步骤及代码: 在MainActivity的onCreate方法中为第一个按钮onClick事件添加相应的代码 Toast toa=Toast.makeText(this,” 请等待一会儿”,Toast.LENGTH_LONG); toa.show(); 第二个按钮的onClick相关代码 Notification no=new Notification(); no.tickerText=\来消息啦!\通告来临时,显示在最上面,一会儿就消失 no.icon=R.drawable.tu2;//显示图标 no.when=System.currentTimeMillis(); no.flags = Notification.FLAG_AUTO_CANCEL; Intent intent=new Intent(MainActivity.this,Tips.class); PendingIntent pend=PendingIntent.getActivity(MainActivity.this, 0, intent, 0); no.setLatestEventInfo(MainActivity.this, \好消息\免费抢书啦!\ //好消息:是在通告栏打开时,这个通告的标题 //免费抢书啦!:是在通告栏打开时,这个通告的内容 NotificationManager fmrg=(NotificationManager) getSystemService(NOTIFICATION_SERVICE); fmrg.notify(0,no); 实训七 Android数据存储 实训要求: 掌握Android中使用SharedPreferences保存配置和读取配置的方法。 实训内容: 创建一个Activity,使用SharedPreferences对象保存程序运行的次数和上次运行的时间,并用TextView显示出来。要求: 1) 第一次运行,显示:你首次运行App! 2) 后续运行,显示:你第x次运行App,上次运行时间:xxxx-xx-xx 3) 添加一个“退出”按钮,点击退出结束Activity的运行 实训步骤及代码: public class MainActivity extends Activity { private TextView hi; private int count; private static final String CONFIG = \@Override protected void onCreate(Bundle savedInstanceState) { } @Override protected void onStop() { super.onStop(); SharedPreferences setting = getSharedPreferences(CONFIG, super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); hi = (TextView) findViewById(R.id.hi); SharedPreferences setting = getSharedPreferences(CONFIG, Context.MODE_PRIVATE); count = setting.getInt(\String date = setting.getString(\if (count > 0) { hi.setText(\第\+ (count + 1) + \次使用APP!\+ \上次使用:\+ date); } else { } hi.setText(\第\次使用APP!\ Context.MODE_PRIVATE); Date d = new Date(); SimpleDateFormat sdf = new SimpleDateFormat(\年MM月dd日 HH:mm:ss\ } } String str = sdf.format(d); count++; setting.edit().putInt(\count).putString(\str).commit(); 实训八 Sqlite数据存储 实训要求: 1)掌握Sqlite数据库的使用方法 2)掌握SqliteOpenHelper的使用方法 3)进一步掌握选项菜单的创建 实训内容: 创建一个Android日记本应用,采用Sqlite数据库作为信息的存储,使用SqliteOpenHelper操作数据库。要求结合菜单能对日记进行添加和删除。 实训步骤及相关代码: (1)为Sqlite数据库创建助手类,继承SqliteOpenHelper public class DatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME=\数据库名 private static final int DATABASE_VERSION=1; private static final String DATABASE_TABLE=\表名 //分别是表中的4个字段名, private static final String KEY_ID=\ KEY_TITLE=\public DatabaseHelper(Context context) { } @Override public void onCreate(SQLiteDatabase db) { super(context,DATABASE_NAME,null,DATABASE_VERSION); String sql=\ \ db.execSQL(sql); } (2)创建自己的数据操作类,完成日记记录的添、删、改功能。 public class DiaryDbAdapter { private static final String DATABASE_TABLE=\表名 } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } //分别是表中的4个字段名, private static final String KEY_ROWID=\ KEY_TITLE=\private SQLiteDatabase db; private DatabaseHelper helper; private Context context; public DiaryDbAdapter(Context context) { } public void open() { } public void close(){ } public void createDiary(String title,String body) { Date d=new Date(); helper.close(); helper=new DatabaseHelper(context); db=helper.getWritableDatabase(); this.context=context; SimpleDateFormat sdf=new SimpleDateFormat(\年MM月dd日HH时mm分\ String da=sdf.format(d); } db.execSQL(\ new Object[]{title,body,da} ); //删除指定记录 public boolean deleteDiary(long rowId) { } public Cursor getAllNotes(){ Cursor cursor=db.query(DATABASE_TABLE, new String[]{KEY_ROWID,KEY_TITLE,KEY_BODY,KEY_CREATED},null, null, return db.delete(DATABASE_TABLE, KEY_ROWID+\null, null,null); } return cursor; public boolean updateDiary(long rowId,String title,String body) { Date d=new Date(); SimpleDateFormat sdf=new SimpleDateFormat(\年MM月dd日HH时mm分\ String created=sdf.format(d); ContentValues args=new ContentValues(); return db.update(DATABASE_TABLE, args, KEY_ROWID+\} (3)设计界面,调用数据操作类实现功能。 实训九 组件通讯与广播 实训要求: 掌握广播的定义与处理过程,通过广播来触发通知栏显示内容。 实训内容: 定义广播接收者,在Activity中用按钮触发一个广播事件,接收者在系统的通知栏中显示相应的信息(标题:广播消息,内容:新的广播消息) 实训步骤及相关代码: (1) 编写广播接收者类MyReceiver继承于BroadcastReceiver public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context arg0, Intent arg1) { Bundle extras = arg1.getExtras(); String str =extras.getString(\Toast.makeText(arg0, \我收到你的消息:\ } } (2) AndroidManifest.xml文件定义 android:name=\ android:enabled=\ android:exported=\ (3) Activity发出广播消息 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt1=(Button)findViewById(R.id.button1); et=(EditText)findViewById(R.id.editText1); bt1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(\ Bundle extras=new Bundle(); extras.putString(\ } intent.putExtras(extras); sendBroadcast(intent); } }); 实训十 使用Service 实训要求: 熟悉Service的概念 掌握Service的定义与运行过程 实训内容: 创建一个Service,实现MP3播放器,分别处理Service相应的方法。要求:实现MP3的播放、停止功能。 实训步骤及相关代码: (1) 继承Service来实现自己的服务MyService public class MyService extends Service { } private MediaPlayer player; @Override public IBinder onBind(Intent arg0) { } @Override public void onCreate() { } @Override public int onStartCommand(Intent intent, int flags, int startId) { } @Override public void onDestroy() { } super.onDestroy(); player.stop(); Log.v(\服务销毁....\Log.v(\服务启动...\return super.onStartCommand(intent, flags, startId); super.onCreate(); player=MediaPlayer.create(this, R.raw.cnhk); player.start(); Log.v(\服务创建....\return null; (2) 在AndroidManifest.xml中注册服务 (3) 在Activity中启动服务 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); b1=(Button)findViewById(R.id.button1); b2=(Button)findViewById(R.id.button2); b1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //启用服务,服务与广播相似度很高,通过Action来指定服务 Intent intent=new Intent(\ startService(intent); } }); b2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(\ stopService(intent); } }); } 本文来源:https://www.bwwdw.com/article/162x.html
android:layout_width=\ android:layout_height=\ android:layout_below=\ android:inputType=\ /> android:id=\ android:layout_width=\ android:layout_height=\ android:text=\ android:layout_below=\ android:layout_alignParentRight=\ android:background=\ /> android:id=\ android:layout_width=\ android:layout_height=\ android:text=\ android:layout_below=\ android:layout_toLeftOf=\ /> 2.在Activity的OnCreate方法中添加相应的代码,对用户名进行判断 Button btnOk=(Button)findViewById(R.id.ok); final EditText et=(EditText)findViewById(R.id.in); btnOk.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { }}); String str=et.getText().toString(); if(str.equals(\{ } Log.v(“Login”,”成功”); 实训三 用户常用组件 实训要求: 掌握常用组件ImageView和Button的属性 掌握常用组件的事件处理 实训内容: 1)使用相对布局,在界面上显示一个ImageView组件,显示一个图片,在图片下方添加两个按钮“+”、“-”。 2)点击按钮+或-,动态修改图片的透明度,每次点击的变化为10。 实训步骤及代码: 1、 在布局界面上放置一个ImageView组件,并指定一个图片资源作为显示的内容,id为imgv,在图片下方添加两个Button按钮,ID分别为add和sub。 xmlns:android=\ android:layout_width=\ android:layout_height=\ > android:id=\ android:layout_width=\ android:layout_height=\ android:layout_centerHorizontal=\ android:scaleType=\ /> android:id=\ android:layout_width=\ android:layout_height=\ android:layout_alignLeft=\ android:layout_below=\ android:text=\ android:id=\ android:layout_width=\ android:layout_height=\ android:layout_alignRight=\ android:layout_below=\ android:text=\ 2、在Activty的类成员中添加一个int型变量alpha,描述当前图片的透明度。 在Activity的onCreate方法中添加以下的代码 Button add=(Button)findViewById(R.id.add); final Button sub=(Button)findViewById(R.id.sub); final ImageView im=(ImageView)findViewById(R.id.imgv); sub.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { }}); @Override public void onClick(View arg0) { alpha+=10; }}); im.setAlpha(alpha); alpha-=10; im.setAlpha(alpha); if(alpha<0) sub.setEnabled(false); add.setOnClickListener(new OnClickListener(){ 实训四 ListView的使用 实训要求: 掌握ArrayAdapter创建ListView,显示自定义的列表 实训内容: 要求根据Android短信应用的显示界面,模拟实现10条短信列表的显示。 实训步骤及代码: 1、 在主界面的布局添加ListView组件,id= messageList 2、定义单条信息的布局文件,放置相应的组件,并准备5-7个图片作为短信息联系人的头像。 3、在类成员中定义头像资源的数组和一个随机数生成器 int []imgs={ R.drawable.tu1, R.drawable.tu2, R.drawable.tu3, R.drawable.tu4, R.drawable.tu5, R.drawable.tu6, R.drawable.tu7 }; Random random=new Random(); 4、然后在OnCreate方法中添加相关的代码实现此功能。 ListView lv = (ListView) findViewById(R.id.messageList); ArrayList> data = new ArrayList>(); //以下循环生成10条信息记录,并添加到data中 for(int i=0;i<=10;i++){ Map map = new HashMap(); int r=random.nextInt(imgs.length);//随机头像索引 map.add(“pic”,r); map.put(\map.put(\”10:13”); map.put(\”这是短消息的内容”); data.add(map); } SimpleAdapter adapter = new SimpleAdapter(this, data,// 这是数据 R.layout.onemessage,// 每一项用哪个布局来显示 new String[] { \new int[] { //map中的key R.id.mobile, R.id.mtime, R.id.mcontent,R.id.picid} //单项信息界面上的组件的ID,与map的key相对应 ); lv.setAdapter(adapter); //为listview指定adapter。 实训五 Menu、Dialog的使用 实训要求: 掌握Menu的创建与事件的处理 掌握AlertDialog简单对话框的使用 实训内容: 创建Activie创建选项菜单,加入退出选项,点击菜单项,弹出确认对话框,文字为标题为“确认”,内容:“你需要退出么?”,点击确认退出应用程序。 实训步骤及代码: 1、 定义菜单定义文件sys.xml 2、在Activity中添加相应的方法 @Override public boolean onCreateOptionsMenu(Menu menu) { } @Override public boolean onOptionsItemSelected(MenuItem item) { int menuid=item.getItemId(); switch(menuid) { case R.id.exit: AlertDialog dialog=new AlertDialog.Builder(this) .setTitle(\确认\.setMessage(\你确定要退出么?\.setIcon(R.drawable.ic_launcher) getMenuInflater().inflate(R.menu.sys,menu); //菜单资源文件转换成return true; 菜单项加载 } } .setPositiveButton(\确定\ }) .setNegativeButton(\取消\.create(); dialog.show(); break; @Override public void onClick(DialogInterface dialog, int which) { } MainActivity.this.finish(); return super.onOptionsItemSelected(item); 实训六 Notification、Intent 实训要求: 掌握Toast对象的创建与使用。 掌握Notification对象的创建和创建自定义的通知。 实训内容: 创建一个简单的布局,添加一个按钮,并为按钮添加相应的处理事件,点击按钮用Toast显示“请等待一会儿”这样的字符。 添加第二个按钮,为按钮添加点击处理事件,点击后在通知栏内添加一个消息提示,tickerText, 来消息啦,通知栏标题是“好消息”,内容文字:“免费抢书啦!”。如点击将启动一个新的Activity。 实训步骤及代码: 在MainActivity的onCreate方法中为第一个按钮onClick事件添加相应的代码 Toast toa=Toast.makeText(this,” 请等待一会儿”,Toast.LENGTH_LONG); toa.show(); 第二个按钮的onClick相关代码 Notification no=new Notification(); no.tickerText=\来消息啦!\通告来临时,显示在最上面,一会儿就消失 no.icon=R.drawable.tu2;//显示图标 no.when=System.currentTimeMillis(); no.flags = Notification.FLAG_AUTO_CANCEL; Intent intent=new Intent(MainActivity.this,Tips.class); PendingIntent pend=PendingIntent.getActivity(MainActivity.this, 0, intent, 0); no.setLatestEventInfo(MainActivity.this, \好消息\免费抢书啦!\ //好消息:是在通告栏打开时,这个通告的标题 //免费抢书啦!:是在通告栏打开时,这个通告的内容 NotificationManager fmrg=(NotificationManager) getSystemService(NOTIFICATION_SERVICE); fmrg.notify(0,no); 实训七 Android数据存储 实训要求: 掌握Android中使用SharedPreferences保存配置和读取配置的方法。 实训内容: 创建一个Activity,使用SharedPreferences对象保存程序运行的次数和上次运行的时间,并用TextView显示出来。要求: 1) 第一次运行,显示:你首次运行App! 2) 后续运行,显示:你第x次运行App,上次运行时间:xxxx-xx-xx 3) 添加一个“退出”按钮,点击退出结束Activity的运行 实训步骤及代码: public class MainActivity extends Activity { private TextView hi; private int count; private static final String CONFIG = \@Override protected void onCreate(Bundle savedInstanceState) { } @Override protected void onStop() { super.onStop(); SharedPreferences setting = getSharedPreferences(CONFIG, super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); hi = (TextView) findViewById(R.id.hi); SharedPreferences setting = getSharedPreferences(CONFIG, Context.MODE_PRIVATE); count = setting.getInt(\String date = setting.getString(\if (count > 0) { hi.setText(\第\+ (count + 1) + \次使用APP!\+ \上次使用:\+ date); } else { } hi.setText(\第\次使用APP!\ Context.MODE_PRIVATE); Date d = new Date(); SimpleDateFormat sdf = new SimpleDateFormat(\年MM月dd日 HH:mm:ss\ } } String str = sdf.format(d); count++; setting.edit().putInt(\count).putString(\str).commit(); 实训八 Sqlite数据存储 实训要求: 1)掌握Sqlite数据库的使用方法 2)掌握SqliteOpenHelper的使用方法 3)进一步掌握选项菜单的创建 实训内容: 创建一个Android日记本应用,采用Sqlite数据库作为信息的存储,使用SqliteOpenHelper操作数据库。要求结合菜单能对日记进行添加和删除。 实训步骤及相关代码: (1)为Sqlite数据库创建助手类,继承SqliteOpenHelper public class DatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME=\数据库名 private static final int DATABASE_VERSION=1; private static final String DATABASE_TABLE=\表名 //分别是表中的4个字段名, private static final String KEY_ID=\ KEY_TITLE=\public DatabaseHelper(Context context) { } @Override public void onCreate(SQLiteDatabase db) { super(context,DATABASE_NAME,null,DATABASE_VERSION); String sql=\ \ db.execSQL(sql); } (2)创建自己的数据操作类,完成日记记录的添、删、改功能。 public class DiaryDbAdapter { private static final String DATABASE_TABLE=\表名 } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } //分别是表中的4个字段名, private static final String KEY_ROWID=\ KEY_TITLE=\private SQLiteDatabase db; private DatabaseHelper helper; private Context context; public DiaryDbAdapter(Context context) { } public void open() { } public void close(){ } public void createDiary(String title,String body) { Date d=new Date(); helper.close(); helper=new DatabaseHelper(context); db=helper.getWritableDatabase(); this.context=context; SimpleDateFormat sdf=new SimpleDateFormat(\年MM月dd日HH时mm分\ String da=sdf.format(d); } db.execSQL(\ new Object[]{title,body,da} ); //删除指定记录 public boolean deleteDiary(long rowId) { } public Cursor getAllNotes(){ Cursor cursor=db.query(DATABASE_TABLE, new String[]{KEY_ROWID,KEY_TITLE,KEY_BODY,KEY_CREATED},null, null, return db.delete(DATABASE_TABLE, KEY_ROWID+\null, null,null); } return cursor; public boolean updateDiary(long rowId,String title,String body) { Date d=new Date(); SimpleDateFormat sdf=new SimpleDateFormat(\年MM月dd日HH时mm分\ String created=sdf.format(d); ContentValues args=new ContentValues(); return db.update(DATABASE_TABLE, args, KEY_ROWID+\} (3)设计界面,调用数据操作类实现功能。 实训九 组件通讯与广播 实训要求: 掌握广播的定义与处理过程,通过广播来触发通知栏显示内容。 实训内容: 定义广播接收者,在Activity中用按钮触发一个广播事件,接收者在系统的通知栏中显示相应的信息(标题:广播消息,内容:新的广播消息) 实训步骤及相关代码: (1) 编写广播接收者类MyReceiver继承于BroadcastReceiver public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context arg0, Intent arg1) { Bundle extras = arg1.getExtras(); String str =extras.getString(\Toast.makeText(arg0, \我收到你的消息:\ } } (2) AndroidManifest.xml文件定义 android:name=\ android:enabled=\ android:exported=\ (3) Activity发出广播消息 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt1=(Button)findViewById(R.id.button1); et=(EditText)findViewById(R.id.editText1); bt1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(\ Bundle extras=new Bundle(); extras.putString(\ } intent.putExtras(extras); sendBroadcast(intent); } }); 实训十 使用Service 实训要求: 熟悉Service的概念 掌握Service的定义与运行过程 实训内容: 创建一个Service,实现MP3播放器,分别处理Service相应的方法。要求:实现MP3的播放、停止功能。 实训步骤及相关代码: (1) 继承Service来实现自己的服务MyService public class MyService extends Service { } private MediaPlayer player; @Override public IBinder onBind(Intent arg0) { } @Override public void onCreate() { } @Override public int onStartCommand(Intent intent, int flags, int startId) { } @Override public void onDestroy() { } super.onDestroy(); player.stop(); Log.v(\服务销毁....\Log.v(\服务启动...\return super.onStartCommand(intent, flags, startId); super.onCreate(); player=MediaPlayer.create(this, R.raw.cnhk); player.start(); Log.v(\服务创建....\return null; (2) 在AndroidManifest.xml中注册服务 (3) 在Activity中启动服务 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); b1=(Button)findViewById(R.id.button1); b2=(Button)findViewById(R.id.button2); b1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //启用服务,服务与广播相似度很高,通过Action来指定服务 Intent intent=new Intent(\ startService(intent); } }); b2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(\ stopService(intent); } }); } 本文来源:https://www.bwwdw.com/article/162x.html
android:layout_width=\
android:layout_height=\ android:text=\ android:layout_below=\
android:layout_alignParentRight=\ android:background=\ /> android:id=\ android:layout_width=\ android:layout_height=\ android:text=\ android:layout_below=\ android:layout_toLeftOf=\ /> 2.在Activity的OnCreate方法中添加相应的代码,对用户名进行判断 Button btnOk=(Button)findViewById(R.id.ok); final EditText et=(EditText)findViewById(R.id.in); btnOk.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { }}); String str=et.getText().toString(); if(str.equals(\{ } Log.v(“Login”,”成功”); 实训三 用户常用组件 实训要求: 掌握常用组件ImageView和Button的属性 掌握常用组件的事件处理 实训内容: 1)使用相对布局,在界面上显示一个ImageView组件,显示一个图片,在图片下方添加两个按钮“+”、“-”。 2)点击按钮+或-,动态修改图片的透明度,每次点击的变化为10。 实训步骤及代码: 1、 在布局界面上放置一个ImageView组件,并指定一个图片资源作为显示的内容,id为imgv,在图片下方添加两个Button按钮,ID分别为add和sub。 xmlns:android=\ android:layout_width=\ android:layout_height=\ > android:id=\ android:layout_width=\ android:layout_height=\ android:layout_centerHorizontal=\ android:scaleType=\ /> android:id=\ android:layout_width=\ android:layout_height=\ android:layout_alignLeft=\ android:layout_below=\ android:text=\ android:id=\ android:layout_width=\ android:layout_height=\ android:layout_alignRight=\ android:layout_below=\ android:text=\ 2、在Activty的类成员中添加一个int型变量alpha,描述当前图片的透明度。 在Activity的onCreate方法中添加以下的代码 Button add=(Button)findViewById(R.id.add); final Button sub=(Button)findViewById(R.id.sub); final ImageView im=(ImageView)findViewById(R.id.imgv); sub.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { }}); @Override public void onClick(View arg0) { alpha+=10; }}); im.setAlpha(alpha); alpha-=10; im.setAlpha(alpha); if(alpha<0) sub.setEnabled(false); add.setOnClickListener(new OnClickListener(){ 实训四 ListView的使用 实训要求: 掌握ArrayAdapter创建ListView,显示自定义的列表 实训内容: 要求根据Android短信应用的显示界面,模拟实现10条短信列表的显示。 实训步骤及代码: 1、 在主界面的布局添加ListView组件,id= messageList 2、定义单条信息的布局文件,放置相应的组件,并准备5-7个图片作为短信息联系人的头像。 3、在类成员中定义头像资源的数组和一个随机数生成器 int []imgs={ R.drawable.tu1, R.drawable.tu2, R.drawable.tu3, R.drawable.tu4, R.drawable.tu5, R.drawable.tu6, R.drawable.tu7 }; Random random=new Random(); 4、然后在OnCreate方法中添加相关的代码实现此功能。 ListView lv = (ListView) findViewById(R.id.messageList); ArrayList> data = new ArrayList>(); //以下循环生成10条信息记录,并添加到data中 for(int i=0;i<=10;i++){ Map map = new HashMap(); int r=random.nextInt(imgs.length);//随机头像索引 map.add(“pic”,r); map.put(\map.put(\”10:13”); map.put(\”这是短消息的内容”); data.add(map); } SimpleAdapter adapter = new SimpleAdapter(this, data,// 这是数据 R.layout.onemessage,// 每一项用哪个布局来显示 new String[] { \new int[] { //map中的key R.id.mobile, R.id.mtime, R.id.mcontent,R.id.picid} //单项信息界面上的组件的ID,与map的key相对应 ); lv.setAdapter(adapter); //为listview指定adapter。 实训五 Menu、Dialog的使用 实训要求: 掌握Menu的创建与事件的处理 掌握AlertDialog简单对话框的使用 实训内容: 创建Activie创建选项菜单,加入退出选项,点击菜单项,弹出确认对话框,文字为标题为“确认”,内容:“你需要退出么?”,点击确认退出应用程序。 实训步骤及代码: 1、 定义菜单定义文件sys.xml
android:layout_width=\ android:layout_height=\ android:text=\ android:layout_below=\ android:layout_toLeftOf=\ />
2.在Activity的OnCreate方法中添加相应的代码,对用户名进行判断 Button btnOk=(Button)findViewById(R.id.ok); final EditText et=(EditText)findViewById(R.id.in); btnOk.setOnClickListener(new OnClickListener(){
public void onClick(View arg0) { }});
String str=et.getText().toString(); if(str.equals(\{ }
Log.v(“Login”,”成功”);
实训三 用户常用组件
掌握常用组件ImageView和Button的属性 掌握常用组件的事件处理
实训内容:
1)使用相对布局,在界面上显示一个ImageView组件,显示一个图片,在图片下方添加两个按钮“+”、“-”。
2)点击按钮+或-,动态修改图片的透明度,每次点击的变化为10。 实训步骤及代码:
1、 在布局界面上放置一个ImageView组件,并指定一个图片资源作
为显示的内容,id为imgv,在图片下方添加两个Button按钮,ID分别为add和sub。 xmlns:android=\ android:layout_width=\ android:layout_height=\ > android:id=\ android:layout_width=\ android:layout_height=\ android:layout_centerHorizontal=\ android:scaleType=\ /> android:id=\ android:layout_width=\ android:layout_height=\ android:layout_alignLeft=\ android:layout_below=\ android:text=\ android:id=\ android:layout_width=\ android:layout_height=\ android:layout_alignRight=\ android:layout_below=\ android:text=\
xmlns:android=\ android:layout_width=\ android:layout_height=\ >
android:id=\ android:layout_width=\ android:layout_height=\ android:layout_centerHorizontal=\ android:scaleType=\ /> android:id=\ android:layout_width=\ android:layout_height=\ android:layout_alignLeft=\ android:layout_below=\ android:text=\ android:id=\ android:layout_width=\ android:layout_height=\ android:layout_alignRight=\ android:layout_below=\ android:text=\
android:layout_width=\ android:layout_height=\ android:layout_centerHorizontal=\ android:scaleType=\ /> android:id=\ android:layout_width=\ android:layout_height=\ android:layout_alignLeft=\ android:layout_below=\ android:text=\ android:id=\ android:layout_width=\ android:layout_height=\ android:layout_alignRight=\ android:layout_below=\ android:text=\
android:layout_width=\ android:layout_height=\ android:layout_alignLeft=\ android:layout_below=\ android:text=\ android:id=\ android:layout_width=\ android:layout_height=\ android:layout_alignRight=\ android:layout_below=\ android:text=\
android:layout_height=\ android:layout_alignRight=\ android:layout_below=\ android:text=\
2、在Activty的类成员中添加一个int型变量alpha,描述当前图片的透明度。
在Activity的onCreate方法中添加以下的代码 Button add=(Button)findViewById(R.id.add);
final Button sub=(Button)findViewById(R.id.sub); final ImageView im=(ImageView)findViewById(R.id.imgv);
sub.setOnClickListener(new OnClickListener(){ @Override
public void onClick(View arg0) { }}); @Override
public void onClick(View arg0) { alpha+=10; }});
im.setAlpha(alpha); alpha-=10; im.setAlpha(alpha);
if(alpha<0) sub.setEnabled(false);
add.setOnClickListener(new OnClickListener(){
实训四 ListView的使用
掌握ArrayAdapter创建ListView,显示自定义的列表 实训内容:
要求根据Android短信应用的显示界面,模拟实现10条短信列表的显示。 实训步骤及代码:
1、 在主界面的布局添加ListView组件,id= messageList
2、定义单条信息的布局文件,放置相应的组件,并准备5-7个图片作为短信息联系人的头像。
3、在类成员中定义头像资源的数组和一个随机数生成器 int []imgs={
R.drawable.tu1, R.drawable.tu2, R.drawable.tu3, R.drawable.tu4, R.drawable.tu5, R.drawable.tu6, R.drawable.tu7 };
Random random=new Random();
4、然后在OnCreate方法中添加相关的代码实现此功能。 ListView lv = (ListView) findViewById(R.id.messageList);
ArrayList> data = new ArrayList>();
//以下循环生成10条信息记录,并添加到data中 for(int i=0;i<=10;i++){
Map map = new HashMap(); int r=random.nextInt(imgs.length);//随机头像索引 map.add(“pic”,r);
map.put(\
map.put(\”10:13”);
map.put(\”这是短消息的内容”); data.add(map); }
SimpleAdapter adapter = new SimpleAdapter(this,
data,// 这是数据
R.layout.onemessage,// 每一项用哪个布局来显示 new String[] { \new int[] {
//map中的key
R.id.mobile, R.id.mtime, R.id.mcontent,R.id.picid} //单项信息界面上的组件的ID,与map的key相对应 );
lv.setAdapter(adapter); //为listview指定adapter。
实训五 Menu、Dialog的使用
掌握Menu的创建与事件的处理 掌握AlertDialog简单对话框的使用 实训内容:
创建Activie创建选项菜单,加入退出选项,点击菜单项,弹出确认对话框,文字为标题为“确认”,内容:“你需要退出么?”,点击确认退出应用程序。 实训步骤及代码:
1、 定义菜单定义文件sys.xml
2、在Activity中添加相应的方法 @Override
public boolean onCreateOptionsMenu(Menu menu) { }
public boolean onOptionsItemSelected(MenuItem item) {
int menuid=item.getItemId(); switch(menuid) {
case R.id.exit:
AlertDialog dialog=new AlertDialog.Builder(this) .setTitle(\确认\
.setMessage(\你确定要退出么?\.setIcon(R.drawable.ic_launcher)
getMenuInflater().inflate(R.menu.sys,menu); //菜单资源文件转换成return true; 菜单项加载
}
.setPositiveButton(\确定\ })
.setNegativeButton(\取消\.create(); dialog.show(); break;
public void onClick(DialogInterface dialog, int which) { }
MainActivity.this.finish();
return super.onOptionsItemSelected(item);
实训六 Notification、Intent
掌握Toast对象的创建与使用。
掌握Notification对象的创建和创建自定义的通知。
创建一个简单的布局,添加一个按钮,并为按钮添加相应的处理事件,点击按钮用Toast显示“请等待一会儿”这样的字符。
添加第二个按钮,为按钮添加点击处理事件,点击后在通知栏内添加一个消息提示,tickerText, 来消息啦,通知栏标题是“好消息”,内容文字:“免费抢书啦!”。如点击将启动一个新的Activity。
实训步骤及代码:
在MainActivity的onCreate方法中为第一个按钮onClick事件添加相应的代码 Toast toa=Toast.makeText(this,” 请等待一会儿”,Toast.LENGTH_LONG); toa.show();
第二个按钮的onClick相关代码 Notification no=new Notification();
no.tickerText=\来消息啦!\通告来临时,显示在最上面,一会儿就消失 no.icon=R.drawable.tu2;//显示图标 no.when=System.currentTimeMillis(); no.flags = Notification.FLAG_AUTO_CANCEL; Intent intent=new Intent(MainActivity.this,Tips.class);
PendingIntent pend=PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
no.setLatestEventInfo(MainActivity.this, \好消息\免费抢书啦!\
//好消息:是在通告栏打开时,这个通告的标题 //免费抢书啦!:是在通告栏打开时,这个通告的内容
NotificationManager fmrg=(NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
fmrg.notify(0,no);
实训七 Android数据存储
掌握Android中使用SharedPreferences保存配置和读取配置的方法。
创建一个Activity,使用SharedPreferences对象保存程序运行的次数和上次运行的时间,并用TextView显示出来。要求:
1) 第一次运行,显示:你首次运行App!
2) 后续运行,显示:你第x次运行App,上次运行时间:xxxx-xx-xx 3) 添加一个“退出”按钮,点击退出结束Activity的运行 实训步骤及代码:
public class MainActivity extends Activity {
private TextView hi; private int count;
private static final String CONFIG = \@Override
protected void onCreate(Bundle savedInstanceState) { } @Override
protected void onStop() {
super.onStop();
SharedPreferences setting = getSharedPreferences(CONFIG, super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); hi = (TextView) findViewById(R.id.hi);
SharedPreferences setting = getSharedPreferences(CONFIG,
Context.MODE_PRIVATE);
count = setting.getInt(\
String date = setting.getString(\if (count > 0) {
hi.setText(\第\+ (count + 1) + \次使用APP!\+ \上次使用:\+ date);
} else { }
hi.setText(\第\次使用APP!\
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(\年MM月dd日
HH:mm:ss\
String str = sdf.format(d); count++;
setting.edit().putInt(\count).putString(\str).commit();
实训八 Sqlite数据存储
1)掌握Sqlite数据库的使用方法 2)掌握SqliteOpenHelper的使用方法 3)进一步掌握选项菜单的创建 实训内容:
创建一个Android日记本应用,采用Sqlite数据库作为信息的存储,使用SqliteOpenHelper操作数据库。要求结合菜单能对日记进行添加和删除。
实训步骤及相关代码:
(1)为Sqlite数据库创建助手类,继承SqliteOpenHelper public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME=\数据库名 private static final int DATABASE_VERSION=1;
private static final String DATABASE_TABLE=\表名 //分别是表中的4个字段名, private static final String KEY_ID=\
KEY_TITLE=\
public DatabaseHelper(Context context) { }
public void onCreate(SQLiteDatabase db) {
super(context,DATABASE_NAME,null,DATABASE_VERSION);
String sql=\
\
db.execSQL(sql); }
(2)创建自己的数据操作类,完成日记记录的添、删、改功能。 public class DiaryDbAdapter {
private static final String DATABASE_TABLE=\表名 }
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }
//分别是表中的4个字段名,
private static final String KEY_ROWID=\
private SQLiteDatabase db; private DatabaseHelper helper; private Context context;
public DiaryDbAdapter(Context context) { }
public void open() { }
public void close(){ }
public void createDiary(String title,String body) {
Date d=new Date(); helper.close();
helper=new DatabaseHelper(context); db=helper.getWritableDatabase(); this.context=context;
SimpleDateFormat sdf=new SimpleDateFormat(\年MM月dd日HH时mm
分\
String da=sdf.format(d); }
db.execSQL(\
new Object[]{title,body,da} );
//删除指定记录
public boolean deleteDiary(long rowId) { }
public Cursor getAllNotes(){
Cursor cursor=db.query(DATABASE_TABLE,
new String[]{KEY_ROWID,KEY_TITLE,KEY_BODY,KEY_CREATED},null, null,
return db.delete(DATABASE_TABLE, KEY_ROWID+\
null, null,null);
return cursor;
public boolean updateDiary(long rowId,String title,String body) {
Date d=new Date();
String created=sdf.format(d);
ContentValues args=new ContentValues();
return db.update(DATABASE_TABLE, args, KEY_ROWID+\}
(3)设计界面,调用数据操作类实现功能。
实训九 组件通讯与广播
掌握广播的定义与处理过程,通过广播来触发通知栏显示内容。 实训内容:
定义广播接收者,在Activity中用按钮触发一个广播事件,接收者在系统的通知栏中显示相应的信息(标题:广播消息,内容:新的广播消息) 实训步骤及相关代码:
(1) 编写广播接收者类MyReceiver继承于BroadcastReceiver public class MyReceiver extends BroadcastReceiver { @Override
public void onReceive(Context arg0, Intent arg1) {
Bundle extras = arg1.getExtras(); String str =extras.getString(\
Toast.makeText(arg0, \我收到你的消息:\ } }
(2) AndroidManifest.xml文件定义
android:name=\ android:enabled=\ android:exported=\
(3) Activity发出广播消息
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt1=(Button)findViewById(R.id.button1); et=(EditText)findViewById(R.id.editText1); bt1.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
Intent intent=new Intent(\ Bundle extras=new Bundle();
extras.putString(\
intent.putExtras(extras); sendBroadcast(intent); } });
实训十 使用Service
实训要求: 熟悉Service的概念
掌握Service的定义与运行过程 实训内容:
创建一个Service,实现MP3播放器,分别处理Service相应的方法。要求:实现MP3的播放、停止功能。 实训步骤及相关代码:
(1) 继承Service来实现自己的服务MyService
public class MyService extends Service { }
private MediaPlayer player; @Override
public IBinder onBind(Intent arg0) { } @Override
public void onCreate() { } @Override
public int onStartCommand(Intent intent, int flags, int startId) { } @Override
public void onDestroy() { }
super.onDestroy(); player.stop();
Log.v(\服务销毁....\Log.v(\服务启动...\
return super.onStartCommand(intent, flags, startId); super.onCreate();
player=MediaPlayer.create(this, R.raw.cnhk); player.start();
Log.v(\服务创建....\return null;
(2) 在AndroidManifest.xml中注册服务
(3) 在Activity中启动服务
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); b1=(Button)findViewById(R.id.button1); b2=(Button)findViewById(R.id.button2);
b1.setOnClickListener(new OnClickListener() { @Override
//启用服务,服务与广播相似度很高,通过Action来指定服务 Intent intent=new Intent(\ startService(intent); } });
b2.setOnClickListener(new OnClickListener() { @Override
Intent intent=new Intent(\ stopService(intent); } }); }
本文来源:https://www.bwwdw.com/article/162x.html
相关文章:
正在阅读:
android 手机开发技术 移动应用开发技术实训指导书03-14
初中650字作文第一次骑自行车三篇06-10
厨房员工各项规章制度08-08
西安交通大学17年9月课程考试《有机化学》作业考核试题10-10
如何处理好生产与安全的关系08-31
2015届高考英语二轮专题检测精品练习 单项选择(8)10-15
2018北京市朝阳区高三年级第一次综合练习数学测试题文科03-31
【党课讲稿】中国共产党人的初心和使命02-23
量测培训10-22
我没想到我如此依赖父母作文500字02-05