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中  - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

posted @ 2019-02-13 14:34  后来的后来啊  阅读(79)  评论(0)    收藏  举报