Android学习笔记

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();String str =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对象Handler handler = 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-permission android:name="android.permission.INTERNET"/>

<uses-permission android: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 = new AlertDialog.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、如果有按钮,则为按钮设置监听器.

 

本项目是一个基于SSM(Spring+SpringMVC+MyBatis)框架和Vue.js前端技术的家教平台系统。该系统旨在为家教和学生提供一个便捷、高效的在线交流和预约平台,涵盖了从用户注册登录、个人信息管理、课程发布与搜索、预约与取消预约、评价反馈等一系列功能。 在后台管理方面,系统提供了管理员对用户信息、课程信息、预约记录等进行管理的功能,确保平台的正常运行和数据的准确性。通过Spring框架的依赖注入和AOP特性,实现了业务逻辑的清晰分离和高效处理;SpringMVC则负责处理前端请求和响应,提供友好的用户界面;MyBatis作为ORM框架,简化了数据库操作,提高了数据访问的效率和安全性。 前端部分采用Vue.js框架,结合Vue Router进行页面路由管理,Axios进行HTTP请求,实现了前后端分离的开发模式。Vue.js的组件化开发和响应式数据绑定特性,使得前端页面更加动态和交互性强,提升了用户体验。 数据库设计采用了MySQL,存储了用户信息、课程信息、预约记录等核心数据。通过合理的数据库表结构和索引设计,保证了系统的高效运行和数据的一致性。 该项目不仅适合计算机相关专业的毕设学生参考和学习,也适合Java学习者进行项目实战练习。通过对该项目的深入理解和二次开发,可以实现更多个性化功能,进一步提升技术水平和实践能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值