您的位置:首页 > 移动开发 > Android开发

Android基础知识学习记录

2016-01-27 10:35 691 查看

Android基础知识学习记录

Android开发环境部署

基础知识

Android基础知识学习记录
基本控件使用
如何在Java中使用控件对象

常用控件的属性

控件的点击事件

Spinner的使用

ListView的使用

常用的布局
线性布局LinearLayout

相对布局RelativeLayout

表格布局TableLayout
如何实现一行的布局按给定的比例布局

切换Activity
如何在两个Activity之间传递数据

其他

基本控件使用

如何在Java中使用控件对象

实例化控件类型的对象

private TextView tv;

初始化对象

tv=(TextView)findViewById(R.id.tv);

使用控件

tv.setText(“密码”);

常用控件的属性

RadioButton&CheckBox

android:checked=”” true为选中,false为未选中

定义在RadioGroup中的RadioButton为单选

点击事件sexgroup.setOnCheckedChangeListener()

TextView

android:gravity=”center” 显示字体居中

android:textSize=”32sp”

android:textStyle=”bold”

android:padding=”3dip” 距离

其他

v.setAlpha(0.5f) 设置控件的透明度(0为不显示,1为显示)

控件的点击事件

Button点击事件

匿名内部类格式

需要导入方法和包

Button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
tv1.setText("密码");
imgbt.setImageResource(R.drawable.nuroto);
}
});


Button长按事件

return true:长按事件和点击事件不冲突

bt2.setOnLongClickListener(new OnLongClickListener() {

@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
bt2.setText("长按结束");
return true;
}
});


Spinner的使用

定义Spinner

在Java文件中初始化Spinner

新建一个List

定义一个新的适配器

将适配器和控件绑定

添加点击事件spinner1.setOnItemSelectedListener()

spinner1=(Spinner)findViewById(R.id.spinner1);
final List<String> list=new ArrayList<String>();
//可以在方法中找到列表的值
list.add("shanghai");
list.add("shenyang");
list.add("shandong");
ArrayAdapter<String>adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list);
//定义适配器(类,适配器格式,所使用的list)    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//下拉格式
spinner1.setAdapter(adapter);
spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
history=""+list.get(arg2);
}
//没有选择的时候
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub

}
});


ListView的使用

定义一个ListView控件

初始化控件对象

定义一个适配器的list

List<String> list=new ArrayList<String>()


定义一个适配器

定义一个点击事件listview.setOnItemClickListener()

点击事件参数
arg0 适配器控件

arg1 适配器内部的控件

arg2 适配器内部的控件的子项位置

arg3 子项的行号

lv1=(ListView)findViewById(R.id.listView1);
final List<String> llist=new ArrayList<String>();
llist.add("first");
llist.add("second");
llist.add("third");
llist.add("forth");
llist.add("fifth");
llist.add("sixth");
ArrayAdapter<String>adapter2=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,llist);
lv1.setAdapter(adapter2);
//区别按钮的Onclick事件
lv1.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub

tv1.setText(String.valueOf(arg2)+String.valueOf(arg3)+llist.get(arg2));

}
});


常用的布局

布局可以相互嵌套

线性布局LinearLayout

android:orientation=”horizontal/vertical”

相对布局RelativeLayout

android:layout_toLeftOf=”@+id/relativepositonid”

android:layout_above=”@+id/relativepositonid”

android:layout_aligntop=”@+id/relativepositonid”

android:layout_alignParentLeft=”true”

android:layout_marginLeft=”10dip”

android:paddingLeft=”10dip”

表格布局TableLayout

如何实现一行的布局按给定的比例布局

<TableRow
android:id="@+id/tablerow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/bt1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
/>
<Button
android:id="@+id/bt2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
</TableRow>


切换Activity

新建一个其他的Activity

在AndroidManifest.xml中注册

以主Activity注册(安装时会出现两个图标)

不以主Activity注册

<activity
android:name=".MainActivity"
android:label="@string/app_name" >
/* <intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>*/
</activity>


利用intent机制跳转窗口

Intent intent=new Intent(MainActivity.this,ToStartActivity.class);

startActivity(intent);

如何在两个Activity之间传递数据

方法一(数据较少时,且类型为String):intent.putExtra(“flag”,”log”);

方法二(数据较多时,且数据类型不单一):

1. 初始化一个Bundle对象

2. 插入数据

3. 将Bundle与intent关联

intent intent=new Intent(MainActivity.this,ResultActivity.class);
Bundle bundle = new Bundle();           bundle.putString("name",String.valueOf(item1.getText()));
bundle.putString("history", String.valueOf(history));
intent.putExtras(bundle);   //关联intent
startActivityForResult(intent,RESULT_CODE);


如何获取数据

Intent intent = this.getIntent();

var str=intent.getStringExtra(“name”);

setReslut(Result,Intent);

如何在主Activity中根据返回值做出响应

requestCode 确定是哪个intent

resultCode 由setResut确定的返回值

类型为protected void

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 10) {
if (resultCode ==6) {
Toast.makeText(MainActivity.this, "这是从ReceiveActivity类回来的响应", Toast.LENGTH_LONG).show();
}
else{Toast.makeText(MainActivity.this, "不是", Toast.LENGTH_LONG).show();}
}
}


其他

xmlns是XML Namespaces的缩写,中文名称是XML(标准通用标记语言的子集)命名空间。

dip: device independent pixels

sp: scaled pixels(放大像素). 主要用于字体显示best for textsize

int–>String String.valueOf

在布局文件中所使用的字符串都需要存在String.xml中

其中app_name为apk安装后所显示的名字

static String history,sex; 定义一个类的全局变量

退出程序System.exit(0);

Activity.finish():当动作完成时退出Activity

Toast.LENGTH_LONG(3.5秒)和Toast.LENGTH_SHORT(2秒)

连接不上手机设备时,在dos中更改路径到platform-tools

adb.exe kill-server

adb.exe start-server

常用快捷键

shift+ctrl+o 导入包

Ctrl+mouseleft 跳转到所在位置

onc导入onclick()的方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android开发 控件