`
superhanliu
  • 浏览: 50375 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

android第一天(小有成就,散分)

阅读更多

好帖子,转到这里记录下来。原文地址:

http://topic.csdn.net/u/20101021/16/B605909C-56F8-41A0-B209-269FEDD51841.html

作者:ptzxzc

 

 

1.将sdk复制到android-sdk-windows\platforms下.如果有网络的话就android-sdk-windows可以自动下,如果已经手动单独把sdk下好了,那么要手动复制到android-sdk-windows下.
2.安装Eclipse插件ADT.
3.新建android项目.
4.建立配置ADT(ctrl+F11调屏幕方向)

由于官方的下载页面被和谐了...
(SDK等我是在这里下载的:http://www.android123.com.cn/android_kit.html)

Activity就相当于一个页面,所以我们每个类都要去继承它.
在onCreate中可以创建组件视图.
创建完毕后要setContentView(组件视图);让它显示在屏幕中.

如果有多个组件的话,就可以使用XML来创建组件视图以及布局.
我们创建的组件视图都是在布局中的.
默认布局是LinearLayout.
创建视图的id表示 例:@+id/btnOk
如果在XML中要引用已建立的组件视图id那么就直接用如@id/btnOk表示.

如果是字符串那么就使用@string/strings来表示.
其中的strings是在string.xml中定义的.
例:
<string name="strings">TestHello</string>
这个strings就表示TestHello.
表示颜色等都是这样
例颜色:<string name="red">#ff0000</string>

如果显示图像的话就使用@drawable/icon1
例:<ImageButton android:src="@drawable/icon1" .../>

在xml中创建的组件在Java中调用例:
 Button btn=(Button) findViewById(R.id.btn);
每当我们改动XML的时候系统就会自动重新生成R.Java

事件一定要在setContentView(R.layout.main)之后写,要不然会报错.
创建完才能find到组件视图.
添加事件:
btn.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {...}
}
参数arg0是所触发事件的视图.

AndroidManifest.xml相当于全局配置文件.
如果要改程序的显示图标,那么就改
<application android:icon="@drawable/icon1" .../>

布局:
LinearLayout:按照水平或垂直进行排列.android:orientation="vertical"(或horizontal)
FrameLayout:左上区,如果添加多个子元素,那么重叠显示在一个元素上.
RelativeLayout:关系布局,添加的时候指定与某个元素的位置;比如之上\之右;出于性能考虑该布局的精确位置只会计算一次.
TableLayout:表格式布局.没什么好说的...
TableRow标签标示布局里面的一行.

布局可以在XML中创建,一般为根元素.
也可以在类中创建;例:
LinearLayout layoutMain=new LinearLayout(this);//创建布局
layoutMain.setOrientition(LinearLayout.HORIZONTAL);//设置为竖直方向
setContentView(layoutMain);//将我们建立的布局与activity关联.

//LayoutInflater对象可以解析XML中的布局.
LayoutInflater inflate=(LayoutInflater)getSystemService(Content.LAYOUT_INFLATER_SERVICE);
RelativeLayout layoutLeft=inflate.inflate(R.layout.left,null);//解析并生成一个RelativeLayout布局.
RelativeLayout.LayoutParams relParam=
  new RelativeLayout.LayoutParams(
  RelativeLayout.LayoutParams.WARP_CONTENT,
  RelativeLayout.LayoutParams.WARP_CONTENT );
生成relationlayout的布局参数.
layoutMain.addView(layoutLeft,100,100);//加入布局视图,高度,宽度
layoutMain.addView(layoutRight,relParam);//加入布局视图,布局参数

参数值:
FILL_PARENT:和父容器一样大.
WARP_CONTENT:和内容一样大.

Activity跳转:
在相应事件中:
Intent intent=new Intent();
intent.setClass(TestHello.this, Hello.class);//从第一个参数的页面跳转到第二个参数的页面.
startActivity(intent);//启动这个跳转
在AndroidManifest.xml中的<application>内加入<activity android:name="类"></activity>

结束当前activity,方法为:finish();

activity间跳转传值:
intent.putExtra("key",value);
startActivityForResult(intent,REQUEST_CODE);
//startActivityForResult()这个方法启动Intent,并且当新的activity运行结束的时候,还必须执行原Activity的回调函数onActivityResult().
//startActivity()这个方法在新的activity执行完后不会执行回调函数,也不用返回任何值.

接传来的值:
Bundle extras=getIntent().getExtras();
String key=extras.getString("key");

Bundle类型是一个类型安全的容器,它的实现是HashMap.它只能存放基本类型或基本类型的数组(有String);

setResult(RESULT_OK,intent);
setResult()方法第一个参数是返回结果码,第二个参数是返回调用此activity的intent.
onActivityResult(int requestCode,int resultCode,Intent data);
第一个参数原始Intent中requestCode,
第二个参数暗示了在心的activity中操作是否合法正确.如果一切是正确的,那么就返回0,如果返回值不是0,那就说明程序运行出现了问题.android提供了一些标准的值,但也可以自己设置.
第三个参数要返回的Intent





数据库:
SharedPreferences:存储方式非常方便,但只适合存储比较简单的数据.
文件存储:以文件的方式存放/读取
SQLite:
内容提供器(Content provider):可多程序共享

SharedPreferences:
SharedPreferences sp=getSharedPreferences("story", 0);
String txt=sp.getString("txt", "");//取数据,default值
sp.edit().putString("txt",edt.getText().toString()).commit();//存数据,最后提交.
data/data/包/shared_prefs

文件存储:
String FILE_NAME="story.tmp";
FileOutputStream fos=openFileOutput(FILE_NAME,Context.MODE_PRIVATE);//获得流
FileInputStream fis=openFileInput(FILE_NAME);

如果文件不存在,则自动创建,如果存在,则覆盖.
如果不想覆盖则使用Context.MODE_APPEND
默认情况下该文件只能被调用的应用程序使用,其他应用程序无法读取这个文件.
除了openFile的方法外,还有deleteFile,fileList等方法来操作文件.


如果要用额外资源则放在/res/raw/下,然后使用getResources获取资源.
Resources myRes=getResources();
InputStream myFile=myRes.openRawResources(R.raw.myFile);

SQLite:当调用SQLiteOpenHelper类中的getWritableDatabase()或者getReadableDatabase()方法的时候,如果没有数据,那么android系统就会自动生成一个数据库.SQLiteOpenHelper是一个抽象类,我们通常要继承它,并实现onCreate,onUpgrade,onOpen方法.
onCreate数据库第一次生成的时候会调用这个方法,一般我们在这个方法里生成数据库表.
onUpgrade当数据库需要升级的饿时候,android系统会主动的调用这个方法,一般我们在这个方法里面删除数据表,并建立新的数据表.
onOpen当打开数据库时的回调函数.

执行sql则调用db.execSQL(sql);db是SQLiteDatabase类型,它是参数.

Log.i()会将参数内容打印到日志中,并且打印级别是info级别,在使用LogCat工具可以查看.


SQLiteDatabase db=mOpenHelper.getReadableDatabase();
String col[]={"col1","col2"};
Cursor cur=db.query(tableName,col,null,null,null,null,null);
Integer num=cur.getCount();//获取记录条数.
db.query的参数:
第一个参数:表名
第二个参数:要返回的列
第三个参数:selection,相当于sql语句的where部分.如果想返回所有数据,那么就null;
第四个参数:selectionArgs,在selection部分,有可能用"?",那么selectionArgs定义的地祖传会代替?
第五个参数:group by
第六个参数:having
第七个参数:order by

db.delete的参数:
第一个参数:数据库表名
第二个参数:相当于sql语句的where部分
第三个参数:是第二个参数中参数的参数(代替第二个参数中?的部分)

ContentValue类和Hashtable类似,但值都是基本类型.

分享到:
评论

相关推荐

    Android传感器应用之摇一摇小球运动实现

    在Android平台上,传感器应用是移动开发的一个重要领域,它允许开发者创建各种有趣和实用的交互式功能。"摇一摇"动作就是一个常见的用户交互模式,常用于游戏、抽奖或者清理缓存等场景。本篇文章将深入探讨如何在...

    Android开发入门60个小案例+源代码

    总之,"Android开发入门60个小案例+源代码"是一个宝贵的资源,它涵盖了Android开发的众多基础知识点,通过实践这些小案例,初学者可以快速上手,逐步掌握Android应用开发的核心技术。同时,源代码提供了直接参考和...

    android 仿京东商品三级分类简单实例

    在Android开发中,构建一个类似京东商品的三级分类系统是一项常见的任务,这涉及到用户界面设计、数据结构管理和触摸事件处理等多个方面。在这个简单的实例中,我们将探讨如何在Android平台上实现这样的功能,不涉及...

    Android小项目集合100多个

    "Android小项目集合100多个"这个资源包提供了一系列的学习和实践材料,旨在帮助开发者深入理解和掌握Android应用程序的开发技巧。以下将针对Android开发的一些核心知识点进行详细阐述。 1. **Android SDK**:...

    Android studio 小案例

    通过这个"Android Test Project"小案例,你将有机会实践上述知识点,进一步熟悉Android Studio的使用,提升Android应用开发技能。记得在实践中不断探索,充分利用Android Studio的各项功能,为你的应用程序带来更...

    Android一个小闹钟例子

    以下将详细解析这个"Android一个小闹钟例子"所涵盖的技术点。 首先,我们需要理解Android的AlarmManager服务。AlarmManager是Android系统提供的一个用于安排周期性或者一次性任务的服务。在这个小闹钟例子中,...

    Android动画之仿美团加载数据等待时小人奔跑进度动画 程序源码

    在Android开发中,动画是提升用户体验的关键因素之一。"Android动画之仿美团加载数据等待时小人奔跑进度动画程序源码"是一个示例项目,它展示了如何创建一个类似美团加载数据时显示的小人奔跑动画。这个动画在用户...

    Android仿京东左右分类

    在Android应用开发中,"Android仿京东左右分类"是一种常见的界面设计模式,它结合了`ListView`和`Fragment`技术,以实现类似京东购物APP那样的交互体验。这种设计通常用于电商平台,用户可以在左侧浏览类别,右侧则...

    Android 消息提示 小红点 自定义控件

    在Android应用开发中,消息提示小红点是一种常见的设计元素,用于显示未读消息或更新的通知。这种小红点能够吸引用户的注意力,促使他们检查新内容。本文将深入探讨如何在Android平台上创建自定义控件来实现这个功能...

    8个android小程序源码

    这个压缩包包含了8个Android小程序的源码,为开发者提供了宝贵的参考资料。每个程序都包含了详细的注释,可以帮助初学者理解代码逻辑,对于有一定经验的开发者,也能提供不同的设计思路和实现方法。以下是这些源码...

    Android串口通信(Android Studio)

    在Android开发中,串口通信(Serial Port ...在Android Studio中实现这一功能需要对Android系统有一定理解,并熟练掌握相关库的使用。通过实践和调试,开发者可以创建出能够有效与外部硬件交互的Android应用。

    android迷宫小游戏源代码

    【Android 迷宫小游戏源代码】是一个专门为Android平台设计的小型游戏项目,旨在提供一个学习和交流Android游戏开发的平台。这个项目的核心是利用编程技术实现一个迷宫游戏,玩家需要在设定的迷宫环境中找到出路。源...

    Android组件设计思想

    Android应用开发的哲学是把一切...这一节讲Android组件化设计的背景、理念、原则,以及Android在OS级别上提供的组件化支持,其中还会包含一个实验来验证这种组件化设计思想,可以对Android系统有一个高层次的抽象理解。

    android使用mvc小例子

    总结来说,"android使用mvc小例子"是一个很好的实践教程,它演示了如何在Android应用中应用MVC模式,帮助开发者理解如何将业务逻辑、用户界面和数据处理有效地分离开来。通过这个实例,初学者可以深入学习Android...

    android开发常用到的小图标

    本资源包含了一系列Android开发中常用的小图标,这些图标设计遵循了Android Material Design指南,旨在提升应用的用户体验和整体美观度。 Android图标可以分为多种类型,包括启动图标、动作图标、状态栏图标、通知...

    Android 一个app启动另一个app

    在Android平台上,应用程序之间的交互是通过Intent机制实现的,这使得一个App能够启动另一个App,或者触发特定的操作。"Android 一个app启动另一个app"这个主题涉及到的核心知识点包括Intent的使用、Intent Filter的...

    Android AudioRecord和MediaRecorder录音并实现了实时获取音量大小

    另一方面,`MediaRecorder`是Android提供的一种更高级的录音API,它封装了录音过程,简化了录音应用的开发。使用`MediaRecorder`录音的主要步骤包括: 1. 初始化`MediaRecorder`对象:设置音频源、输出格式和文件...

    Android一键清理后台实现

    在Android平台上,开发一款“一键清理后台”应用可以帮助用户快速释放设备内存,提高系统运行速度。这个功能通常包括清理正在运行的应用程序、终止不必要的服务以及管理后台进程。下面将详细介绍如何在Android 4.4...

    android 做的小游戏源代码

    【标题】"Android小游戏源代码——水珠游戏" 在Android平台上开发小游戏,是许多开发者学习和实践编程技能的常见方式。本项目名为“水珠游戏”,它是一个基于Android的轻量级休闲游戏,旨在帮助用户了解Android游戏...

    Android自定义日期选择器源码

    我们可以使用Android的`GridView`或`RecyclerView`来实现这个视图,每个单元格代表一个月、一天或一小时。结合滚动事件和点击事件,我们可以让用户轻松地导航和选择。 博客文章“Android自定义日期选择器源码”可能...

Global site tag (gtag.js) - Google Analytics