Android学习要点Word下载.docx
《Android学习要点Word下载.docx》由会员分享,可在线阅读,更多相关《Android学习要点Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
focusableInTouchMode=“true”
Day05:
一、写出相对布局的16个属性二、写出Spinner的常用属性(至少4个)下拉模式:
android:
spinnerMode设置标题:
prompt=“@string/title”设置数据源:
android:
entries=“@array/cityes”设置下拉背景:
popupBackground=“#f00”三、描述Spinner与ArrrayAdapter之间的用法(需要写出ArrayAdapter的构造方法)1.Spinner是AdapterView的子类,因此需要ArrayAdapter显示数据2.Spinner.setAdapter(ArrayAdapter)设置Spinner的适配器对象3.ArrayAdatper(Contextcontext,intresid,List<
T>
datas)ArrayAdapter(Contextcontext,intresid,T[]datas)四、写出AutoCompleteTextView的用法及文本改变事件监听器接口1.AutoCompleteTextView辅助用户快速输入内容2.AutoCompleteTextView辅助的信息是集合类型,因此需要一个ArrayAdapter3.AutoCompleteTextView.setAdapter(ArrayAdapter)4.AutoCompleteTextView.addTextChangedLinstener(TextWatcher)
Day06:
一、写出ImageView的ScaleType的属性值(至少需要5个)centerCropcenterInsidefitCenterfitStartfitEndfitXYcenter二、写出Activity之间的传值方式1.intent2.静态成员3.全局对象或方法4.startActivityForResult三、写出Spinner与ArrayAdapter的用法Spinner.setAdapter(ArrayAdapter)ArrayAdapter<
(Contextcontext,intresid,T[])或ArrayAdapter<
(Contextcontext,intresid,List<
)四、写出Activity的生命周期方法与相关说明1.onCreate()初始创建时调用,且只调用一次2.onStart()显示窗口3.onResume()获取焦点,与用户交互4.onPause()失去焦点,暂停与用户交互5.onStop()关闭窗口6.onRestart()重新显示窗口:
onStart()—>
onResume()7.onDestory()销毁窗口对象五、写出ActivityA启动ActivityB的生命周期方法的调用顺序A:
onPause->
B:
onCreate()->
onStart()->
B:
onResume()->
A:
onStop()六、写出当前Activity下按Home键的生命周期方法的调用顺序onPause()->
onStop()
Day07:
一、写四种Activity运行模式和设置方法四种:
standardsingleTopsingleTasksingleInstance设置方法:
在清单配置文件(AndroidManifest.xml)的Activity标签中使用android:
launchMode属性设置二、RunningTaskInfo类的常用属性id,baseActivity,topActivity,numActivities三、写出Intent的七大属性ComponentNameActionCategoryDataTypeExtraFlag四、写出打电话的隐式意图Intentintent=newIntent(Intent.ACTION_CALL,Uri.parse(“tel:
10086”));
startActivity(intent);
一、描述一下Android中使用线程的规则1.主线程(UI线程)不能被阻塞2.子线程(WorkThread)不能访问UI控件二、什么时候会发生ANR,ANR全称是什么是在主线程被阻塞5秒以上则会发生ANR,ApplicationnotResponding解决办法是在子线程中执行耗时操作三、写出AsyncTask的用法1.创建类,继承AsyncTask类,并指定三个泛型2.重写doInBackground()方法,在此方法中处理网络或耗时操作3.重写onPostExecute()处理后台线程返回结果4.重写onPreExecute()和onProgressUpdate()实现后台处理进度信息5.在UI线程中实现自定义的AsyncTask的子类,并调用其的execute()方法执行网络请求四、如何取消AsyncTask1.通过自定义的AsyncTask的子类对象,调用其的cancel(true)取消任务2.在AsyncTask子类的doInBackground()方法中,通过isCancelled()判断当前任务是否被取消
Day09:
一、写出AsyncTask的三种泛型的作用1.Params:
请求处理的类型(Url和String)2.Progress:
后台处理的进度(Integer)3.Result:
后台处理的结果类型(Bitmap,List<
)二、如何修改ProgressBar的样式<
ProgressBarstyle=“?
attr?
ProgressBarStyleHorizontal”>
三、写出ListView的常用属性android:
divider设置分隔线的样式android:
dividerHeight:
设置分隔线的高度android:
entries设置列表的数据源四、写出BaseAdapter的四个抽象方法publicintgetCount();
publicObjectgetItem(intposition)publiclonggetItemId(intposition)publicViewgetView(intposition,ViewconvertView,ViewGroupparent);
Day12:
1、写出三种不同的菜单的创建方式和点击菜单项的事件处理1.OptionsMenu在Activity中重写onCreateOptionsMenu()重写onOptionsItemSelected()2.ContextMenu重写onCreateContextMenu()重写onContextItemSelected()3.PopupMenupopupMenu=newPoppuMenu(Context,View);
popupMenu.setOnMenuItemClickListener(OnMenuItemClickListener)//设置菜单项点击事件二、写出AlertDialog简单用法AlertDialog.Builderbuilder=newAlertDialog.Builder(Context);
builder.setTitle(String).setIcon(intres).setMessage(String).setPositiveButton(String,DialogInterface.OnClickListener).create().show();
三、写出一个通知的普通用法(构造通知和发送通知)1.NotificationCompat.Builderbuilder=newNotificationCompat.Builder(Context);
builder.setSmallIcon(intresId).setContentTitle(String).setContentText(String).setContentIntent(PendingIntent);
2.NotificationManagernotifyManager=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
notifyManager.notify(1,builder.build())
Day13:
1、写出Fragment11个生命周期方法onAttach()onCreate()onCreateView()onActivityCreated()onStart()onResume()onPause()onStop()onDestroyView()onDestroy()onDetach()二、写出Fragment传值方式Bundle方式:
FragmentTransaction.setArguments(Bundle)Activity方式:
在Activity中声明public方法,在Fragment中通过getActivity()获取Fragment所在的Activity对象,并执行其中public方法三、如何动态增加Fragment到指定的布局中(id:
contentId)FragmentManagermanager=getFragmentManager();
FragmentTransactiontrans=manager.beginTransaction();
trans.replace(contentId,newCustomFragment());
mit()
Day14:
1、写出四种数据存储方式SharedPreferences共享参数内部存储扩展存储网络存储
二、如何判断SDCard是否可用,如何获取SDCard的根目录1.StringsdcardState=Environment.getExternalStorageState();
if(sdCardSate.equals(Environment.MEDIA_MOUNTED){//可用}2.Stringpath=Environment.getExteralStorageDirectory().getAbsolutePath()三、写出内部存储的读写方法1.读FileInputStreamfis=openFileInput(String)2.写FileOutputStreamfos=openFileOutput(String,intmode),Context.MODE_PRIVATE四、写出共享参数的简单使用的代码(读与写)1.读SharedPreferencespres=getSharedPreferences();
Stringkey=pres.getString(“key”);
2.写SharedPreferencespres=getSharedPreferences();
SharedPreferecces.Editoreditor=pres.edit();
editor.putString(“key”,”Value”);
mit();
五、写出上传文件核心代码(Android端)MultipartEntitymultipartEntity=newMultipartEntity();
FileBodyfile=newFileBody(newFile(filePath));
FormBodyPartformPart=newFormBodyPart(“form”,file);
multipartEntity.addPart(formPart);
HttpClientclient=newHttpClient();
HttpPostpost=newHttpPost(url);
post.setEntity(multipartEntity);
Day15:
一、写出SimpleAdapter的构造方法SimpleAdapter(Context,List<
HashMap<
String,?
>
intresId,String[],int[])二、写出SimpleCursorAdapter的构造方法SimpleCursorAdapter(Context,intresId,Cursor,String[],int[],intflags)flag—>
CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVERCursorAdatper.FLAG_AUTO_REQUERY三、写出数据库操作的相关类(到少3个)SQLiteDatabaseSQLiteOpenHelperCursorContentValues四、写出内部存储的数据库的位置/data/data/{packName}/databases/*.db
day16:
1、写出AsyncTask使用步骤1.创建类,继承AsyncTask,并指定三个泛型2.重写四个方法onPreExecute()ResultdoInBackground(Params…params)[必须实现]onPostExecute(Resultresult)[必须重写]onProgressUpdate(Progress…progress)3.在UI线程中实例化异步任务类,并执行execute(Params…)二、写出BaseAdapter的四个抽象方法intgetCount()ObjectgetItem(intposition)longgetItemId(intposition)ViewgetView(intposition,ViewconvertView,ViewGroupparent)三、写出SQLiteOpenHelper的用法(两种打开数据库的方式)1.创建类,继承SQLiteOpenHelper2.重写二个方法,并增加带Context参数的构造方法1).onCreate()2).onUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion)
3.实例化SQLiteOpenHelper子类的对象->
dbHelper1).dbHelper.getReadableDatabase()只读方式2).dbHelper.getWritableDatabase()读写方式
Day17:
1、写出Fragment的11个生命周期方法1)onAttach(Activity)onCreate(Bundle)onCreateView(LayoutInflater,ViewGroupcontainer,Bundle)onActvityCreated(Bundle)2)onStart()onResume()onPause()onStop()3)onDestoryView()onDestory()onDettach()二、解析以下的Json内容:
(至少2种方式)[{age:
10,name:
”s1”},{age:
15,name:
”s2”,sex:
”男”},{name:
”s3”,sex:
”女”}]1.StringjsonStr=“[{age:
”女”}]”JSONArrayarray=newJSONArrray(jsonStr);
for(inti=0;
i<
array.length;
i++){JSONObjectobj=array.getJSONObject(i);
intage=obj.optInt(“age”);
Stringname=obj.optString(“name”);
Stringsex=obj.optString(“sex”);
}2.FastJSON方式1)创建JavaBean类->
Student2.List<
Student>
list=JSON.parseArray(jsonStr,Student.class);
3.GOSN方式1)创建Student类2)创建TypeToken<
LIst<
typeToken=newTypeToken<
List<
(){};
3)创建Gson对象:
Gsongson=newGson();
List<
lists=gson.fromJSON(jsonStr,typeToken.getType());
三、写出ContentProvider的使用步骤(涉及到提供方和使用方及相关的方法)1.提供方(ContentProvider端)1)创建SQLiteOpenHelper的子类,并实现两个方法,用于对本应用下的数据库操作的onCreate()onupgrade(SQLiteDatabasedb,intoldVersion,intnewVersion)2)创建ContentProvider的子类,并实现6个方法,主要提供给ContentResolver端使用的booleanonCreate()query(Uriuri,String[]projections,Stringwhere,String[]whereArgs,StringsortOrder)insert(Uriuri,StringnullColum,ContentValuesvalues)update(Uriuri,ContentValuesvalues,Stringwhere,String[]whereArgs)delete(Uriuri,Stringwhere,String[]whereArgs)StringgetType(Uriuri)3)在ContentProvider子类中增加Authority和相应请求的Code4)根据请求的Code增加Uri到UriMatcher中UriMatchermatcher=newUriMatcher(UriMatcher.NO_MATCH)matcher.addUri(StringAuthority,Stringpath,intcode)5)在相应的方法中通过UriMatcher对象,匹配当前请求的Uri是哪种Code,根据不同的code来处理不同表的事务6)在AndroidManifest.xml清单配置文件增加访问当前ContentProvider的权限,并注册ContentProvider<
permissionandroid:
name=“{Authority}.READ_WRITE”/>
..<
providerandroid:
name=“CotentProvider子类的完整类路径”android:
authorites=“{Authority}”android:
permission=“{Authority}.READ_WRITE”android:
exported=“true”/>
2.使用方1).在AndroidManifest.xml清单配置文件使用提供方声明的权限<
uses-permissionandroid:
2)通过getContentResolver()获取到ContentResolver对象,并执行相应的数据处理事务注意:
.需要正确使用Uri数据访问接口和访问字段
Day18:
1、写出SimpleCursorAdapter的构造方法SimpleCursorAdapter(Context,intresId,Cursor,String[]from,int[]to,intflag)flag->
CursorAdapter.FLAG_REISTER_CONTENT_OBSERVER二、写出启动Loader的步骤1.当前的Activity或Fragment实现LoaderCallbacs<
D>
接口,并实现其三个方法Loader<
onCreateLoader(intloaderId,Bundleargs)onLoadFinished(Loader<
loader,Cursordata)onLoaderReset(Lo