android学习笔记(一)
第一章
第一节
Activity
每新建一个Activity,都必须在AndroidMainifest.xml注册。
Intent
Intent对象包含的几组信息
https://www.360docs.net/doc/8c6579998.html,ponent name
2.Action
3.Data
4.Category
5.Extras
6.Flags
Inent在两个Activity中传递消息,不一定要求这两个Activity在同一个应该程序内
举例:在一个Activirty中调用系统的短信功能
Uri name_uri = Uri.parse("smsto://tellnumber"); //tellnumber 代表要发送的对象 如:Uri name_uri = Uri.parse("smsto://10086")
Intent name_intent = new Intent(Intent.ACTION_SENDTO,name_uri); //
name_intent.putExtra("sms_boy","The SMS test");
//键值名为:sms_boy (猜想:此为系统的键值名,因为当系统短信这个Activity中得到Intent的键值名时,
//Intent的键值名应该是固定的,String value =name_intent.getStringExtra("sms_boy") ; "The SMS test"表示的是短信内容
starActivity(name_intent);
Component name
当当前Activity需要启动另外的Activity时,就要指定Component name,Component name中就要包含了指定跳转的信息
Action
跳转到另外Activity时需要做什么
Data
从一个Activity向另外的Activity传输的信息
Category
Extras
额外的键值对
设置键值对
Intent name_intent = new Intent();//生成一个Intent对象
name_intent.putExra("name_keyvalue","value") //这里设置一个键值对,键名为"name_keyvalue",值为"value"
获得键值对
Intent name_intent = getIntent(); //调用getIntent()方法,取的传进来的Intent对象name_intent,
String value =name_intent.getStringExtra("name_keyvalue") //getStringExtra(),得到name_keyvalue的值
//这样就可以用value的具体值了。
Flags
第二章 布局
包括RelativeLayout、LinearLayout、TableLayout。
第一节 相对布局的方法说明
android:layout_height="wrap_content" //包围文字
android:padding="10px" > //父控件内的所有控件距四周边框 10个像素
//单位说明: px像素 dip 相对的像素
外置 于 给定id的上下左右
android:layout_above //将该控件的底部至于给定ID的控件之上
android:layout_below //将该控件的顶部至于给定ID的控件之
下
android:layout_toLeftOf //将该控件的右边缘和给定ID的控件的左边缘对齐
android:layout_toRightOf //将该控件的左边缘和给定ID的控件的右边缘对齐
内嵌 于 给定id的上下左右
android:layout_alignBaseline //该控件的baseline和给定ID的控件的baseline对齐
android:layout_alignBottom //将该控件的底部边缘与给定ID控件的底部边缘
android:layout_alignLeft //将该控件的左边缘与给定ID控件的左边缘对齐
android:layout_alignRight //将该控件的右边缘与给定ID控件的右边缘对齐
android:layout_alignTop //将给定控件的顶部边缘与给定ID控件的顶部对齐
android:alignParentBottom //如果该值为true,则将该控件的底部和父控件的底部对齐
android:layout_alignParentLeft //如果该值为true,则将该控件的左边与父控件的左边对齐
android:layout_alignParentRight //如果该值为true,则将该控件的右边与父控件的右边对齐
android:layout_alignParentTop //如果该值为true,则将空间的顶部与父控件的顶部对齐
android:layout_centerHorizontal //如果值为真,该控件将被至于水平方向的中央
android:layout_centerInParent //如果值为真,该控件将被至于父控件水平方向和垂直方向的中央
android:layout_centerVertical //如果值为真,该控件将被至于垂直方向的中央
android:layout_margin="..." // 外边距
android:backgrounp="#aa0000" //定义控件背景色
android:backgrounp="@android:drawable/editbox_backgrounp" //定义背景色为系统默认
第二节 线性布局
//线性布局 encoding="utf-8" 解码方式,适合中文
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
体的大小
android:background 指定控件的背景色,用RGB命名法
android:padding 指定控件的内边距
android:singleLine 如果设置为true,则显示内容在同一行当中进行显示 -->
第三节 表格布局
//线性布局 encoding="utf-8" 解码方式,适合中文
android:layout_height="fill_parent"
abdroid:stretchColumns="1"> //使用第一列作为拉伸列。
//注意,java列是从第0列开始。拉伸是为了当控件不能填满父控件事,拉伸使其填满
android:layout_gravity="right"
android:layout_padding="3dip"/>
android:layout_layout="..."/>
第二章 相关控件说明 //使用时必须在Activity中进行声明。 private TextView name = null;private Button name = null;private RadioButton name = null;等。
包括 Button、TextView、EditText、RadioGroup、CheckBox、Taost
1. 按钮
.startActivity(name_intent); //starActivity(name-intent)开启另一个对象Activity ,
//这里传进来的是一个Intent对象
}
}
捆绑监听器
name_button.setOnClickListener(new name_ButtonListener());
2. 文本域
android:text="..." //设置文本域内容 当想显示的内容较多时,应该调用string,以此减少布局代码
//或者调用 .setText("...")方法设置内容
/>
3. 可编辑文本域
/>
//得到EditText的值
string name_edittextStr = name_edittext.getText().toString();
//强制类型转换 转化成整形
int name_edittextInt = Integer.parseInt(name_edittextStr)
4.单选按钮 及单选按钮组
android:orientation="vertical" //决定单选按钮的排列方式,水平或者垂直
android:layout_width="..."
android:text="@string/"..."
/>
单选按钮的监听器
//不是给单选Button设置单选按钮,而是给RadioGroup设置监听器
建立监听器:
name01_Group.setOnCheckedChangListener(new RadioGroup.OnCheckChangeListener)
{
//new RadioGroup 中有个内部类OncheckChangedListener ,有个oncheckChanged方法,当点击name01_Group的按钮时,
//都会触发name01_Group.setOnCheckedChangListener监听器,从而开始调用onCheckChanged方法
public void onCheckedChanged(RadioGroup group,int checkedId){
//调用onCheckChanged方法,会传入两个参数,一个是group 哪一个组的对象被点击哪个一个组的对象就会传进来
// 一个是checkedId (被点击的RadioButton的id就会传进来)
if(name_Button.getId == check
edId){
do thing ;
}
}
}
5. 多选按钮 //先在Activity中进行声明 private CheckBox name = null;
android:layout_wigth="..."
android:layout_height="..."
android:text="@string/.." />
android:layout_wigth="..."
android:layout_height="..."
android:text="@string/.." />
每个CheckBox都要设置监听器
name_Box.setOnChangeListener(new CompoundButton.OnCheckedChangedListener)
//
{
public void onCheckChanged(CompoundButton buttonView,boolean isChecked)
//传进的是布尔值,是否选中,如果选中,则传入true, 否则为false
{ if (isChecked)
{
do something;
}
else
{
do something;
}
}
}
6.Toast 消息提示框 Toast.makeText(RadioText.this,"...",Toast.LENGTH_SHORT)
//RodioText.this 是指Activity的对象 Toast.LENGTH_SHORT 是指消息的长短
7.Menu
//当点击 MENU按钮时,调用该方法。
需要复写OnCreateOptionsMenu()方法
//当客户点击MENU按钮的时候,调用该方法
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, 1, 1, R.string.exit); //第一个参数,是菜单所处的组的名字,二当前菜单按钮的ID,三排序,四显示的内容
menu.add(GroupId,item,2,R.string.about);
return super.onCreateOptionsMenu(menu);
}
//有几个menu.add,就有几个menuItem.
//当客户点击菜单当中的某一个选项时,会调用该方法
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == 1){
finish();//该函数是结束该Activity
}
return super.onOptionsItemSelected(item);
}