Android学习笔记
来源:互联网 发布:黄金价格用什么软件 编辑:程序博客网 时间:2024/06/05 15:08
Android学习笔记
基础
1、参考文档:解压android-sdk-windows.zip文件目录下的docs/index.html 。
2、android:id="@+id/tv"表示在R.java类中会自动定义tv变量,方便在main中引用。
3、android:autoLink的作用:自动加链接,其值可为(web/email/phone/map/none/all)。
4、Editview做跑马灯效果。
5、Button组件的应用,注意在MainActivity.java中是通过匿名内部类的方式来实现事件监听。
DDMS视图的介绍:
1、右上面找到DDMS视图;
2、在类中显示输出信息用Log.d("mydebug","this is a error msg");
3、对LogCat的运用:它是用来显示输出信息的,当你想只查看system输出的信息时,可以点击右下角的+,设置它的tag为System.out即可。也可以把上面的Log中的的mydebug设置为tag,这样就可以只查看它的信息了。
4、在DDMS视图下可以导入导出文件,点击左下角的File Explorers,右上角有导入导出的图标。
5、看报错信息:看LogCat视图中的E图标,显示为红色图标的信息就是报错信息。
6、当DDMS视图承灰色时,说明没关联到模拟器,这时可以点击Devices下的Reset adb.
6、Toast.markTest的作用:显示提示信息,不影响任何工作。
7、Intent:intent.setAction(Intent.ACTION_CALL)用于拨打电话,
8、每创建一个Activity都要在AndroidMainifest.xml中配置
传值通过intent.setClass设置传给某个对象,通过启动startActivityForResult传值;在另一个Activity中接收值用Bundle bunle = intentget.getExtras();Stringstr =bunle.getString("str"); 返回值用setResult(RESULT_CODE,intent),RESULT_CODE表示某个对象。
9、onSaveInstanceStale(),保持Activity状态,即当按返回时,之前填的数据还保留的。
10、把Android:theme加在ActivityManifest文件的activity中来设置手机墙纸的效果。
11、每在layout下创建了一个.xml文件都要创建相应的activity,都要在androidmanifest.xml下做相应配置。
12、android:layout_weight="3"表示占画布的1/3;
13、android:gravity="center_horizontal|center_vertical"表示控件中的内容的对齐方式为水平垂直居中。
14、textSize的单位为pt(磅);paddingTop的单位为dip,顶部内边距;singleline表示当内容超出范围时是否显示为一行,以……代表。
创建Activity要点:
1、Activity:是所有控件的容器。
2、一个activity只能有一个类,并且要继承Activity,重写它的onCreate方法。
3、每一个activity,都要在 AndroidManifes.xml中进行配置。
4、在main.xml中为activity增加必要的控件。
5、在main.xml中为控件定义id(@+id/id名),在activity的onCreate中就可以通过findViewById来引用定义的控件id了。
Intent的用途:
1、data:activity之前的跳转,通过intent.setClass与startActivity实现。
2、Action:用于拨打电话、发短息等操作。
3、Extras:用于跳转时的传值。
Activity的生命周期:
1、当启动第一个activity时,FirstActivity:onCreate onStart onResume当启动第二个activity时,第一个activity会执行onPause再执行第二个activity的过程SecondActivity:onCreateonStart onResume 执行完第二个activity时,再执行第一个activity的onStop方法,当activity用户不可见时才会调用onStop方法,如果是可见的,如当弹出对话框时,activity是可见的,这时是不能调用onStop方法的。当点击返回时第二个activity会停止,并销毁,有两种情况会调用onDestory方法(第一种:当完成任务时调用;第二种:当资源不够用时调用)。
如图:
2、
3、对话框方式的activity:在androidManifest.xml文件中增加android:theme="@android:style/Theme.Dialog"。
TableLayout表格布局中:
1、stretchCloumns="0"表示当整行未占满时,拉伸第一列的宽度。
2、TableRow表示行,这个控件里的TextView表示列。
RelativeLayout相对布局:
1、根据某控件的id来固定相对位置。
2、Layout_alignLeft:本控件与某id控件成左边与左边对齐,重叠式的。
3、Layout_toLeftOf:本控件与某id控件成右边与左边对齐,右左式的。
4、Layout_alignParentLeft:当设置为true时表示本控件与父控件的左边对齐,即靠父控件内部的左边对齐。
ProgressBar:
1、设置水平的进度条:style="?android:attr/progressBarStyleHorizontal";
2、设置默认的进度条:style="?android:attr/progressBarStyle";
3、设置它们的显示状态,暂时不可见:android:visibility="gone";
4、在activity中再设置可见:myprocess.setVisibility(View.VISIBLE);
5、通过setProgress()来设置前进速度。
ListView列表显示:
1、在main.xml中创建ListView,设置
android:id="@+id/android:list"
android:drawSelectorOnTop="false"
android:scrollbars="vertical"
2、新建一个xml文件,里面设置对要显示的内容布局,如ip、name,设置android:singleLine="true"表示有下划线。
3、创建一个继承ListActivity的activity,定义两个map数组集合,创建SimpleAdapter实例,把map中对应的值显示到布局中相应控件id的位置,setListAdapter(simpleAdapter)。
4、覆盖onListItemClick方法,在这个方法中你可以写些点击列表行时的事件。
Handler的用法与Thread线程结合用:
1、创建一个线程Runnable updateThread = new Runnable(),创建Handler对象Handlerhandler = new Handler()。
2、把线程加入队列handler.post(updateThread);把线程移出队列handler.removeCallbacks(updateThread)。
3、Handler与ProgressBar实现进度条自动运行:得到一个消息对象Message msg =handler.obtainMessage();将msg对象的参数设置为1,用arg1和arg2变量传递消息,可以使系统性能消耗较好msg.arg1 =i;将msg对象加入到队列中handler.sendMessage(msg);Thread.sleep(1000);
4、Handler.post()把线程加入到队列时并没有开启新的线程,而是直接调用线程的run方法,如果想让它开启新的线程,可以使用HandlerThread的start方法,在使用getLooper方法之前,必须要调用HandlerThread的start方法
5、Bundle的用法:通过putData来设置值。
SQLite的使用:
1、进入DOS,输入adb,出现信息说明配置正常,如果没有说明环境变量配置不正确。
2、再输入adb shell进入linux命令:ls; ls -l;查看目录 cd data;进入data目录 ls -l;cd data; sqlite3 库名;进入数据库 .schema查看数据库结构; 。
3、getReadableDatabasse()当执行查询、创建数据库操作时用些方法,getWritableDatabase()当执行增加、修改、删除操作时用些方法。只有调用了这两个方法才会真正对数据库进行操作。
4、创建数据库://创建一个DataBaseHelper对象,库名为test_user_db
DataBaseHelper dbHelper = new DataBaseHelper(SqliteActivity.this,"test_user_db");
//只有调用了些方法才会操作数据库
SQLiteDatabase db =dbHelper.getReadableDatabase();
5、插入操作://键值对形式
ContentValues values = new ContentValues();values.put("id", 1);db.insert("user",null, values);
6、修改操作:values.put("name", "tom22");
//要更新的表名、更新的值、条件相当于where语句
db.update("user", values, "id=?", new String[]{"1"});
7、查询操作:
Cursor cursor = db.query("user", new String[]{"id","name"},"id=?", new String[]{"1"},null, null,null);while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex("name"));
}
下载文件:
1、加入两个权限:一个是联网,一个是读写SD卡,在Manifest中增加
在Manifest中增加
<uses-permissionandroid:name="android.permission.INTERNET"/>
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
ContentProvider
小项目实例:
2D动画(项目animation1_test):
1、创建一个控制逐帧动画:
AnimationDrawable anim = new AnimationDrawable();
2、//每隔多少秒把图片设置到动画组件中,getDrawable返回一个墙纸
anim.addFrame( v.getResources().getDrawable(R.drawable.walk1 + i), 100);
3、//设置可以玩一次(true)或重复玩(false) anim.setOneShot(false);
4、//当前动画是否在运行 anim.isRunning();
5、//设置动画停止与开始 anim.stop() anim.start();
时间定时器(项目timerTest):
1、在main.xml中设置<Chronometer />;
2、//为记时器设置一个监听事件
chronometer.
setOnChronometerTickListener(new Chronometer.OnChronometerTickListener();
3、自开始以来的时间以毫秒为单位:SystemClock.elapsedRealtime();
4、设置计时器累计时间:chronometer.setBase()
5、开始/停止计时:chronometer.start(); chronometer.stop();
6、//显示弹出式警告对话框
AlertDialog.Builder builder = newAlertDialog.Builder(this);
builder.setIcon(R.drawable.icon);
builder.setTitle("警告").setMessage("时间到").setPositiveButton("确定",
new DialogInterface.OnClickListener() {});
AlertDialog dialog =builder.create();
dialog.show();
写程序步骤:
1、创建视图布局,定义id;
2、Activity中,定义变量;
3、根据控件id获得控件对象;
4、如果有按钮,则为按钮设置监听器.
- Android学习笔记--Gson笔记
- Android学习笔记
- Android学习笔记(二)
- android学习笔记--序
- android学习笔记1
- android学习笔记2
- android学习零碎笔记
- Android 学习笔记
- Android学习笔记(一)
- Android ExpandableListActivity 学习笔记
- Android EditText 学习笔记
- Android学习笔记3
- Android学习笔记4
- Android学习笔记5
- Android学习笔记9
- Android Animation学习笔记
- Android 学习笔记
- Android 数字签名学习笔记
- Android APN开发流程分析
- hibernate 更新后查询缓存问题。
- VS项目出现的问题:'jni.h': No such file or directory
- Struts2中Action接收参数的方法主要有以下三种:
- SQL语句的解析过程
- Android学习笔记
- Java:vs生成JNI,java调用JNI实例
- ListView 隔行重复选中的问题
- 如何进步?程序员的自学指南
- 动态规划的思想
- Python简单两步实现天气爬虫采集器
- javabean的理解
- KeyInputQueue:取消息(到消息队列) InputDispatcherThread:分发消息
- Android真机调试