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代码:
@Overridepublic 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/
时间: 2024-10-14 18:52:24