android开发之探究活动
活动是什么:
Activity他是一种可以包含用户界面的组件(控件)主要用于和用户进行交互,一个应用程序可以包含零到的多个活动,但不包含任何活动很少见
手动创建活动
新建一个项目选择Add No Activity完成,我们在app/src/main/java/com.example.activity包右击新建Activity-Empty Activity,不勾选Generate Layout File(自动为活动创建一个对用的布局文件)和Launcher Activity(设为主活动),勾选BackwardsCompatibility(向下兼容)
创建加载布局
右击app/src/mian/res目录-New-Directory会弹出新建目录窗口,创建一个目录,在目录右击Layout resource file弹出新建布局资源文件窗口,文件命名,根元素当前设为LinearLayout
将布局文件添加到活动中去 setContentView(R.layout.first_layout);
在AndroidManifest中进行注册
<activity android:name=".FirstActivity"
android:lable="This is FirstActivity">//指定活动中标题栏内容
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>//设为主活动
</intent-filter>
</activity>
在活动中使用Toast(非常好的提醒方式,将一些短小的信息提示给用户)
用法:Toast.makeText(Context,显示内容,时长).show();
在活动中使用Menu
在res目录下new-Directory文件名menu,右击menu文件夹new-Menu resource file 一个main 新建xml
修改main.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"/>
重写选项菜单 在活动中ctrl+o
public boolean onCreateOptionsMenu(Menu menu){创建选项菜单
getMenuInflater()//得到MenuInfalter对象.inflate(R.menu.main,//那个资源文件创建菜单menu//菜单项将添加到哪一个Menu对象中);//给当前活动创建菜单
return true}
选项菜单事件
public boolean onOptionsItemSelected(MenuItem item){
switch(item.getItemId()){
case R.id.add_item:
break;
case R.id.remove_item:
break;default:}
return true;}
销毁一个活动:按下back键就可以销毁一个活动,但代码销毁finish();
如点击一个按钮销毁活动
public void onClick(View v){
finish();}
使用intent在活动中穿梭(显式Intent和隐式Intent 都实现页面的跳转)
显示:
隐式Intent 不明确指出想要启动哪一个活动,而是制定一系列更为抽象的action和category等信息,然后就交由系统去分析
1.先配置AndroidManifest.xml文件的Intent和category (其中的categroy是默认的,在startActivity()时会自动添加到Intent)
2.Intent使用 每个Intent只能制定一个action却能制定多个category

需要在AndroidManifest.xml中进行修改:

更多隐式Intent用法:
其中setData()传入的是uri对象 而Uri.parse()对字符串的解析
其中Intent.ACTION_VIEW是android系统中内置的动作,其常量为android.intent.action.VIEW -------------------------------------------------------------------------------------------------------------------------

其中data相当于隐式Intent 也是交由系统去分析匹配找到合适的活动
除了http以外 tel表示打电话,geo显示地理位置
Intent.ACTION_DIAL也是系统内置动作
使用Intent向下一个活动传递数据 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

向上传递数据 (使用staryActivityForResult()) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

startActivityForResult(Intent,请求码) -----------------------------------------------------------------------------setResult(向上一个返回处理结果一般RESULT_OK,RESULT_CANCED,intent) 向上一个活动返回数据的
因为我们使用得是startActivityForResult()必须在FirstActivity中回调onActivityResult 方法来返回数据
其中第一参数为请求码,第二参数为返回数据时传入的处理结果,第三参数为intent
如果用户在SecondActivity中使用back键返回到FirstActivity中 - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------

浙公网安备 33010602011771号