烽火学习笔记1

Date 0808


Android 开发环境配置

开发工具 :eclipse 解压就能使用==> 需要jre

Java JDK6.0  ==> jdk、jre

android需要安装SDK ==> 从网上下载20,30M的包 , SDK 管理器==> 

运行android可执行文件(Linux: tools/android; Windows:/)==> 安装SDK 2.2 ==> 配置一个AVD


安装 JDK ==> SDK ==> 配置环境变量PATH ==> 解压eclipse ==> 安装android开发插件ADT ==> 为android配置模拟器AVD

========================

安装过程中,需要执行一些可执行文件

执行 :

1)可视化==> 双击 ==> Run in Terminal(在终端中运行)

2)终端下

# cd 文件所在的目录

# ./可执行文件名字

执行时遇到不能执行问题,解决?

# cd 文件所在目录

# chmod a+x 文件


配置PATH :

JAVA 的 jdk/bin

SDK adb所在的目录


Linux :

编辑用户目录下的 .profile

#gedit ~/.profile

export PATH="路径1:路径2: ... :$PATH"


=====================================

xml 可扩展的标记语言,允许自定义标记

html 标记语言 ==> web编程


标记一般成对出现<string name="hello" >  </string>

<Button />

标记允许嵌套,不允许交叉嵌套

<LinearLayout ...>

<Button />

<TextView />

<TableLayout ...>

</TableLayout>

</LinearLayout>

注释 :

1) *.java  ==>  // , /* ... */ , /**    */

2) xml , html 文件注释 <!--  注释内容  -->


布局文件每个控件需要定义的属性

android:id="@+id/名字"

android:layout_width=""    

android:layout_height=""

width 和 height常用的属性值 为 fill_parent 或 wrap_content

java 文件中获取该组件 ( (控件类型)findViewById(R.id.XXX))


TextView

Button

EditText


猜数


==========================================================================

Date 0809

复习 :

1)配置android的开发环境

2)了解android项目下各个目录含义,存放内容

3)可以创建一个简单的android项目

TextView

Button

EditView

步骤 :

i、在Activity对应的布局xml文件 定义组件,设置属性

<LinearLayout></LinearLayout>

<Widget android:id="@+id/idName"

android:layout_width=""

android:layout_height="" />( </Widget> )

fill_parent、wrap_content

ii、java文件访问组件==>获取组件 onCreate()

View findViewById(R.id.XXX) ==> 强制类型转换

iii、对控件操作 ==> 添加监听器

Button ==> OnClickListener


今天内容 :

1. Activity 的生命周期

2. 控件常用属性,尺寸的设置和颜色设置

3. LinearLayout


   问题一:Context???

   问题二 : fill_parent 与 match_parent  

1. Activity 的生命周期

   构造函数 ==> onCreate() ==> onStart() ==> onResume()(活跃状态) 

如果有其他Activity加入 ==> onPause()

如果Activity完全不可见 ==> onStop()

  finish() , 退出 , 资源不足 ==> onDestroy()


2. 新建一个Activity,要素

1) class XXX extends Activity{}

2) 在 AndroidManifest.xml 中注册Activity

<activity name=".className"></activity>

<activity name=".className" android:theme="@android:style/Theme.Dialog"></activity>

3) 在layout为Activity定义一个布局xml文件

4) 在class中重写 onCreate()方法

3. 启动一个Activity

Intent intent = new Intent(getApplicationContext() , XXXActivity.class);

startActivity(intent);

4. 结束Activity

finish();


练习 :1 . 测试Activity的生命周期

       2. 从一个Activity跳转到第二个Activity

3. 上方的两个问题???


5. 控件常用xml属性

尺寸 : px 像素

dip或者dp 设备独立像素

sp 放大像素 处理字体

颜色 : #RGB #000000--#FFFFFF

图片 : drawable @drawable/名字

名字不采用大写字母,不以数字开头

layout_width

layout_height

layout_text

layout_textColor

layout_background

layout_textSize

layout_padding

layout_margin

1)EditText

layout:lines

layout:maxLines

layout:password="boolean"

layout:numeric=""  Integer , decimal , signed

android:phoneNumber="boolean"

2) 滚动条

   ScrollView 提供垂直方向滚动条

layout:scrollbars="vertical"

   HorizontalScrollView 提供水平方向滚动条 , 不能为ListView控件设置

3) ImageView

layout:src/setImageResource(int id)

layout:scaleType=""   属性值不能自定义

4) 布局嵌套


练习 :

1)测试ImageView的ScaleType不同属性值的含义

2)调整一下你的猜数游戏布局

3)测试在一个布局中分别设置两个Button,其中一个宽高全为100px,另一个宽高全为100dip,运行在不同分辨率的模拟器下,对照一下两个按钮的各自大小

======================================

0810

复习 :

EditText

ImageView


LinearLayout android:orientation="vertical or horizontal" 控件可以使用属性 layout_weight

今天内容 :

1. 

TableLayout  属性 android:stretchColumns , 列从0数起

<TableRow>

控件可以使用属性 android:layout_column="int"  设定是第几列

FrameLayout 单帧布局

每个控件都放置在以左上角开始的位置,后面控件遮挡前面控件

2. 选项菜单的使用

1)选项菜单添加

onCreateOptionsMenu(Menu menu) {

menu.add();

menu.add().setIcon();  // android.R.drawable.ic_menu_xxx;

}

2)对于选项菜单项的处理

onOptionsItemSelected(MenuItem item) {

int id = item.getItemId();

}

3)和选项菜单相关的其他方法

onPrepareOptionsMenu(){}

onOptionsMenuClosed(){}


注 : android内置一部分资源,这些内置资源引用 android.R....

4)可以为控件注册选项菜单,在控件的监听器的方法中使用 openOptionsmenu();


3. 快捷菜单 ContextMenu

1) 重写onCreateContextMenu()

menu.setHeaderTitle()

menu.add()

   registerForContextMenu(View v) ; 为v控件添加了快捷菜单    

   unregisterForContextMenu(View v) ;

2)控件注册监听器

setOnCreateContextMenuListener()


4. java代码中添加控件

1)new View(Context)

2)addView(vObject , new XXX.LayoutParams(int w , int h));

练习 :

1. 两种方式实现ContextMenu  ,


明天提交 :1)登录

2)Project :ContextMenu,OptionsMenu

3)Project:

MainActivity :LinearLayoutButton、TableLayout

Button、 FrameLayoutButton、RelativeLayoutButton、AbsoluteLayoutButton

单击不同的按钮显示不同的布局

在每个 布局对应Activity中添加注释,说明该布局的使用


================================================================

0811

RelativeLayout 

AbsoluteLayout

RadioGroup、RadioButton、CheckBox

1. RelativeLayout 相对布局

第一个控件默认放置在左上角,后续控件放置时需要参照某个控件设置位置(Above、Bottom、Left、Right),还可以参照某个控件设置对齐方式(align)

从第二行开始控件的定位一般需要几个属性 :垂直方向的定位/水平方向+对齐

注意 : 控件要设置id

layout_above

layout_bottom

layout_left

layout_right

----------------

layout_alignBaseline

layout_alignTop

layout_alignBottom

layout_alignLeft

layout_alignRight

以上9个属性的值是某个参照控件的id "@id/viewId"

layout_alignParentTop

layout_alignParentBottom

layout_alignParentLeft

layout_alignParentRight

以上4个属性的值是 boolean


2. AbsoluteLayout

第一个控件默认放置在左上角 , 其他控件需要定位,layout_x , layout_y


3. TextView , EditText , Button , ImageView , ImageButton , ScrollView

   1)单选按钮,若干个RadioButton为一组,放在一个RadioGroup中

   i. <RadioGroup> 的属性 android:checkedButton="@+id/要默认选中的

RadioButton的id"

   ii. 在RadioGroup中嵌套若干个RadioButton

   iii. 为 RadioGroup添加 onCheckedChangeListener 监听器

在重写的onCheckedChange方法中,可以通过checkedId和RadioButton的id进行比较,来判断那个RadioButton被选中

   2)复选框  CheckBox

android:checked="boolean"  / isChecked()

CheckBox 可以添加 onClickListener 监听器

java文件中判断是否被选中 isChecked()


练习 :

1)RelativeLayout

2)RadioButton与CheckBox


============================================================================

0812

1. 常用Linux命令

1)cd      ~ 用户主目录    / 根目录  ./ 当前目录   .. 上级目录

2)pwd

3)clear

4)ctrl+c 终止当前命令的执行

5)sudo chown -R 用户:组 目录 把目录的所有者和组重新授权

6)mv 移动

7)cp 拷贝

8)chmod   

r  -- 4   | w -- 2 | x -- 1

所有者 组 其他

如 chmod -R 755 /opt/demo

  chomod a+x 文件

9)tar czvf 目录a 目录b  名字.tar.gz

10)tar xzvf 名字.tar.gz

2. java 常用的集合

List与Set : List可以重复,Set 不允许重复数据

ArrayList , LinkedList

Map : key <==> value

put(key , value)

Object get(key)  ==> value

Set keySet()

Collection valueSet()

3. ListView

需要一个数据适配器 :ArrayAdapter、SimpleAdapter、SimpleCursorAdapter

需要一个数据源

ArrayAdapter  ==> 数组或者动长数组

SimpleAdapter ==> List<? extends Map<String , ? >>

步骤 :

1)需要一个ListView控件

2)设置数据源 

3)ListView的Item项的layout文件

内置布局文件 android.R.layout.simple_list_item1 一行一列

   android.R.layout.simple_list_item2 两行一列

   还有三个 android.R.layout.simple_list_XXX

自定义layout的xml文件

4)定义适配器Adapter

ArrayAdapter(Context context , 

int layoutResourceId , 

List|Array data)

SimpleAdapter(Context context,

List<? extends Map<String , ?>> data,

int layoutResourceId , 

String[] from, // map的key

int[]  to  // layout文件中显示value的控件id

)

5)ListView常用的监听器 onItemClickListener, onClickListener, onLongtimeClickListener

onItemClick(AdapterView<?> parent, View view,

int position, long id)

// 获取选中项item ==> 根据数据源的元素类型可以进行强制类型转换

? item = (?)parent.getAdapter().getItem(position);  

// 如果移除选中项

数据源.remove(item);

(如果添加item,数据源.add())

// 不要忘记通知ListView

adapter.notifyDataSetChanged();

ListView :

1)  class extends Activity

2)  class extends ListActivity

ListActivity内置了List控件的一个Activity ,直接在onCreate() 方法中调用setListAdapter() 

可以不定义layout的xml文件的

如果定义layout的xml文件 ,在xml文件

<ListView android:id="@id/android:list" ... ></ListView>

java文件不需要通过findViewById()找出ListView控件,如果非要找到 ListView list = (ListView) findViewById(android.R.id.list);



练习 :

ListView 的使用

extends Activity : 使用ArrayAdapter,数据源设置一些颜色String

添加监听器,更改背景颜色

extends Activity : 使用SimpleAdapter

item显示,左右,左显示图片,右上下两行分别显示title和info

添加监听器,实现选中项的删除

extends ListActivity

显示 ,上方ListView,Activity最下方添加一个Button


各位同学:

烽火3G实训基地的论坛已经开通!大家可以去上面注册,交流,各种学习,生活,技术问题都可以留言,回帖。可以把此论坛作为大家共同的家园!


      http://www.fenghuo3g.com/bbs/forum.php


















































 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值