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名),在activityonCreate中就可以通过findViewById来引用定义的控件id了。

 

Intent的用途:

1、dataactivity之前的跳转,通过intent.setClassstartActivity实现。

2、Action:用于拨打电话、发短息等操作。

3、Extras:用于跳转时的传值。

 

Activity的生命周期:

1、当启动第一个activity时,FirstActivity:onCreate  onStart onResume当启动第二个activity时,第一个activity会执行onPause再执行第二个activity的过程SecondActivity:onCreateonStart onResume 执行完第二个activity时,再执行第一个activityonStop方法,当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、创建一个继承ListActivityactivity,定义两个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、如果有按钮,则为按钮设置监听器.

 

原创粉丝点击