在Android中的目录结构
- Activity:用于打开时显示的界面
- src:项目代码
- R.java:项目中所有资源文件的资源ID
- Android.jar:Android的jar包,导入此包方可使用Android的API
- libs:导入第三方jar包
- assets:存放资源文件
- bin:存放编译打包后的文件
- res:存放资源文件,存放在此文件夹下的所有资源文件都会生成资源ID
- drawable:存放图片资源的文件
- layout:存放布局文件,把布局文件通过资源id指定给Activity
- menu:定义菜单的样式
- Strings.xml:存放字符串资源,每个资源都会有一个资源ID
Android中常用的adb指令:
- adb start-server:启动adb进程
- adb kill-server:杀死adb进程
- adb devices:查看当前与开发环境连接的设备,此命令也可以启动adb进程
- adb install XXX.apk:往模拟器安装apk
- adb uninstall 包名:删除模拟器中的应用
- adb shell:进入linux命令行
- ps:查看运行进程
- ls:查看当前目录下的文件结构
- netstat -ano:查看占用端口的进程
Android中几种点击事件:
(1)在内部类中定义点击事件:
通过创建一个MyListener类,这个MyListener类通过继承 OnClickListener 监听器接口,实现对点击事件的监听和处理。
public class MainActivity extends Activity {
private Button testButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
testButton = (Button) findViewById(R.id.testButton);
// 设置点击处理时间
testButton.setOnClickListener(new MyListener());
}
/*
* 创建的内部类,处理点击事件
*
* */
private class MyListener implements OnClickListener{
@Override
public void onClick(View v) {
// 在这个方法里面写处理的事件
}
}
}
(2)采用匿名内部类创建点击事件
匿名内部类中,通过new一个该监听器(OnClickListener)的对象,来实现对点击事件的监听和处理。
public class MainActivity extends Activity {
private Button testButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
testButton = (Button) findViewById(R.id.testButton);
// 设置点击处理时间
testButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//处理的事件
}
});
}
}
(3)在接口里面实现点击处理事件
在接口里面实现点击处理事件中,通过重写onClick点击事件,来实现对点击事件的监听和处理。
public class MainActivity extends Activity implements OnClickListener {
private Button testButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
testButton = (Button) findViewById(R.id.testButton);
// 设置点击处理事件
testButton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.testButton:
// 处理的事件
break;
default:
break;
}
}
}
(4)在布局中绑定点击方法
利用布局文件中的onClick属性,并在实现文件中实现该方法。注意的是这里的方法名应该和布局文件中onClick属性的方法名相同,该方法必须是public方法。
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void test(View v){
// 处理事件
}
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<Button
android:id="@+id/testButton"
<span style="color:#ff0000;">android:onClick="test"</span>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="76dp"
android:text="Button" />
</RelativeLayout>