1、项目中的所有活动都要重写onCreat()方法
2、通过setContentView()加载一个布局活动
3、定义一个ID,+id,引用ID,id
4、活动在ActivityManifest中注册 活动 权限等。
在<application>
<activity
name .类名
lable
>
<intent-filter>
<action adroid:name = "android.intent.action.MAIN"/>
<category android:name = "android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
5、没有声明一个活动作为主活动,则无法在启动器中看到这个程序,一般作为第三方服务供其他的应用在内部进行调用,如微信,支付宝支付。
6、隐藏标题栏的方法
在onCreate()方法中添加如下代码:
requestWindowFeature(Window.FEATURE_NO_TITLE);
必须在setContentView()之前执行。
7、在活动中使用Toast
一种提醒方式,将一些短小的信息通知给用户,然后一段时间后自动消失。
在onClick中添加
通过静态方法makeText()方法创建,三个参数传入,第一个:Content上下文,类名.this或者直接this;第二个:文本内容;第三个:Toast显示的时长,两个内置常量可选:Toast.LENGTH_SHORT和Toast.LENGTH_LONG.
Toast.makeText(MainActivity.this, "我是一个BUTTON", Toast.LENGTH_SHORT).show();
8、在活动中使用Menu
新建一个menu文件夹
<menu>
<item
android:id="@+id/add_item"
android:title="add"
/>
</menu>
然后重写onCreateOtionsMenu()方法
XML文件中:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/add_item"
android:title="Add"
/>
<item
android:id="@+id/remove_item"
android:title="Remove"
/>
</menu>
Java代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main,menu);
return true;
}
通过getMenuInflater()得到MenuInflater对象,再调用inflate()方法就可以给当前活动创建菜单,接受的两个参数:通过哪一个资源文件创建菜单,我们的菜单想将添加到哪一个Menu对象中。最后返回true,表示显示出来。
为菜单项创建响应事件:就要重写onOptionsItemSelected()
item.getItemId()来判断是哪一个菜单
9、通过finish()方法销毁活动
10、Intent的使用:启动活动、启动服务、发送广播。分为显式和隐式
用startActivity()接受Intent
bt_haha.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("data", "bt_hahaha");
Toast.makeText(MainActivity.this, "我是一个BUTTON", Toast.LENGTH_SHORT).show();
//第一个为上下文,第二个为class指定的启动目标
Intent intent = new Intent(MainActivity.this,SecondClass.class);
startActivity(intent);
}
});
以上为显示
下面是隐式:
<intent-filter>
<action android:name="hello.one.yhm.com.myfrist.ACTION_START"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
Java:
bt_second.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("hello.one.yhm.com.myfrist.ACTION_START");//包名加自己定义,大写
startActivity(intent);
}
});
<action>只能有一个 <category>可以有多个
intent.addCategory("hello.one.yhm.com.myfrist.MY_CATEGORY");//addCategory()方法来添加,并要在xml中声明
<intent-filter>
<action android:name="hello.one.yhm.com.myfrist.ACTION_START"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.MY_CATEGORY"/>
</intent-filter>
隐式的Intent可启动自己程序内的活动,还可以启动其他程序的活动,使得多个应用程序之间功能共享成为可能。如:需展示一个网页,不需自己实现一个浏览器,只需要调用系统的浏览器打开网页
bt_second.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Intent intent = new Intent("hello.one.yhm.com.myfrist.ACTION_START");
// intent.addCategory("hello.one.yhm.com.myfrist.MY_CATEGORY");//addCategory()方法来添加,并要在xml中声明
// startActivity(intent);
Intent intent = new Intent(Intent.ACTION_VIEW);//系统内置的动作
//Uri.parse()方法将网址字符串解析为Uri对象
//intent的setData()方法传递uri对象
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
}
});
还可以在<intent-filter>中配置一个<data>标签,用于更精确的指定当前活动能够响应什么数据类型,配置内容如下:
android:scheme协议部分 host主机名 port端口 path主机名和端口之后的部分 mimeType可以处理的数据类型,不会指定过多的内容,浏览器中指定一个scheme就可以响应所有的http协议
调用系统相机http://cowboy.1988.blog.163.com/blog/static/75105798201422645818776/