4000 Android中Activity相关知识-1
2016-04-14 08:40
369 查看
创建Activity
Activity的跳转
Activity的传值
Activity的生命周期
创建Activity
Activity是四大组件之一,一个App可以有0个或多个Activity
它是一个用来展示用户界面以及与用户进行交互操作的组件
当在一个Activity中按下返回时,Android OS会自动销毁Activity对象
当在一个Activity中启动另外一个Activity时,当前Activity不会被销毁,而是会被压入Activity栈中
Activity跳转的其他Activity可以不是当前Application中的Activity
Activity的创建步骤:
自定义类,继承Activity
复写onCreate方法,并使用setContentView方法设置显示内容
在AndroidManifest.xml文件中注册Activity
注意:以下方式来指定APP默认启动的
Intent意图(四大组件的粘合剂)
显示Intent:
创建Intent时,已经明确需要启动哪一个具体的Activity
隐式Intent:
创建的Intent,不知道具体是哪一个Activity,由Android OS根据action和category进行过滤查找
实现跳转的基本步骤:
首先创建工程文件
在xml文件中定义一个按钮为了实现后面点击跳转
在.java文件中利用拖拽的方式快捷生成另一个.java文件(创建跳转后的activity)
同时生成另一个.xml文件在其中创建一个TextView显示在跳转后的页面上
在MainActivity.java文件中对按钮进行实现初始化以及点击跳转动作以及页面的跳转
注意:不要忘记在注册文件中对新的.java文件进行注册(代码如下)
一、
二、
三、
四、
另一种方法:
如果再次创建一个CActivity.java同时创建一个xml文件在layout中,注册代码如下:
效果如下图:
Application的传参方法:
首先创建一个.Java文件名为MyApplication
在注册文件中进行注册
在两个.Java文件中写上标记(查看执行顺序)
执行打印先后是先出现MyApplication后出现MainApplication
在MyApplication中定义一个静态的score变量,同时创建方法返回score值
在MainApplication中初始化创建MyApplication的对象调用在MyApplication中创建的方法返回score的值同时显现出来
简单说来就是在MyApplication中定义方法后再其他的.Java文件中调用操作,不要忘记注册
注意:
setText()方法:一种是直接传入参数是字符串,一种是传输参数是整型;如果是字符串,则直接赋值到setTex中,如果是传入参数是整型,则会去resource中根据整型查找对应的字符串,然后转化为字符串。
使用intent.putExtra(String,String)传递intent的值
getIntent是返回启动此Activity的Intent
从Intent中获取源Activity中put的相应值
Activity生命周期
onCreate 创建Activity时被调用
onRestart Activity被重新显示时被调用
onStart 显示Activity时被调用
onResume Activity获取焦点时被调用(用户可以与Activity交互)
onPause Activity失去焦点时被调用
onStop Activity不可见时被调用
onDestroy Activity销毁时被调用
Activity的跳转
Activity的传值
Activity的生命周期
创建Activity
Activity是四大组件之一,一个App可以有0个或多个Activity
它是一个用来展示用户界面以及与用户进行交互操作的组件
当在一个Activity中按下返回时,Android OS会自动销毁Activity对象
当在一个Activity中启动另外一个Activity时,当前Activity不会被销毁,而是会被压入Activity栈中
Activity跳转的其他Activity可以不是当前Application中的Activity
Activity的创建步骤:
自定义类,继承Activity
复写onCreate方法,并使用setContentView方法设置显示内容
在AndroidManifest.xml文件中注册Activity
注意:以下方式来指定APP默认启动的
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Intent意图(四大组件的粘合剂)
显示Intent:
创建Intent时,已经明确需要启动哪一个具体的Activity
Intent intent = new Intent (Context context, Class destination);
startActivity(intent);Intent intent=new Intent();intent.setClassName("com.escott.day06_1","com.escott.day06_1.BActivity");
隐式Intent:
创建的Intent,不知道具体是哪一个Activity,由Android OS根据action和category进行过滤查找
Intent intent = new Intent (“action_danny_jiang”);
startActivity(intent);
实现跳转的基本步骤:
首先创建工程文件
在xml文件中定义一个按钮为了实现后面点击跳转
在.java文件中利用拖拽的方式快捷生成另一个.java文件(创建跳转后的activity)
同时生成另一个.xml文件在其中创建一个TextView显示在跳转后的页面上
在MainActivity.java文件中对按钮进行实现初始化以及点击跳转动作以及页面的跳转
注意:不要忘记在注册文件中对新的.java文件进行注册(代码如下)
一、
<!--在xml文件中创建button-->
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="启动BActivity" />
二、
<!--创建另一个.java文件并继承于Activity-->
public class BActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_b);
}
}
三、
<!--创建.xml文件同时创建一个TextView(创建什么随意)-->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="this is BActivity" />
四、
public class MainActivity extends Activity {
private Button button1=null;
//创建私有静态变量
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
<!--初始化按钮事件-->
button1=(Button)findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//创建Intent
Intent intent=new Intent(MainActivity.this,BActivity.class);//调用Context.startActivity进行页面跳转
startActivity(intent);
}
});
}
}
另一种方法:
Intent intent=new Intent();
intent.setClassName("com.escott.day06_1","com.escott.day06_1.BActivity");
//注意后面的类名要是全路径才行
如果再次创建一个CActivity.java同时创建一个xml文件在layout中,注册代码如下:
<activity android:name="com.escott.day06_1.DActivity">
<intent-filter>
<action android:name="tiao_zhuan"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
效果如下图:
Application的传参方法:
首先创建一个.Java文件名为MyApplication
在注册文件中进行注册
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"<!--进行注册-->
android:name="com.scott.day06_1.MyApplication"
android:theme="@style/AppTheme"
在两个.Java文件中写上标记(查看执行顺序)
Toast.makeText(MyApplication.this, "启动MyApplication", Toast.LENGTH_SHORT).show();
执行打印先后是先出现MyApplication后出现MainApplication
在MyApplication中定义一个静态的score变量,同时创建方法返回score值
private int score=100;
@Override
public void onCreate() {
super.onCreate();
}
public int getScore(){
return score;
}
在MainApplication中初始化创建MyApplication的对象调用在MyApplication中创建的方法返回score的值同时显现出来
注意无论后面创建几个.Java文件只要是通过getApplication()获取的MyApplication(是一个单例)对象都是指同一个对象
MyApplication app=(MyApplication) getApplication();
int score=app.getScore();
Toast.makeText(MainActivity.this, "score="+score, Toast.LENGTH_SHORT).show();
简单说来就是在MyApplication中定义方法后再其他的.Java文件中调用操作,不要忘记注册
注意:
setText()方法:一种是直接传入参数是字符串,一种是传输参数是整型;如果是字符串,则直接赋值到setTex中,如果是传入参数是整型,则会去resource中根据整型查找对应的字符串,然后转化为字符串。
使用intent.putExtra(String,String)传递intent的值
getIntent是返回启动此Activity的Intent
从Intent中获取源Activity中put的相应值
String name=intent.getStringExtra("name");
Activity生命周期
onCreate 创建Activity时被调用
onRestart Activity被重新显示时被调用
onStart 显示Activity时被调用
onResume Activity获取焦点时被调用(用户可以与Activity交互)
onPause Activity失去焦点时被调用
onStop Activity不可见时被调用
onDestroy Activity销毁时被调用
相关文章推荐
- AndroidStudio 快捷键使用总结
- Android 基本控件的使用二(注册许可协议)(CheckBox)
- Android所需的Java基础知识体系图
- [Android] 字体使用dp单位避免设置系统字体大小对排版的影响
- Android 基本控件的使用一(用户的登录界面)
- Android中自定义样式与View的构造函数中的第三个参数defStyle的意义
- Android之广播机制—本地广播
- Android之广播机制—有序广播
- Android之广播机制—自定义广播
- Android之广播机制—动态注册
- 安卓ExpandableListView长按监听判断点击的item属于哪个group(群组)和child(子项)
- Android 图片如何高效加载与缓存 (5) —— RecyclerView与自定义线程池结合 优化加载
- Android View 焦点问题(EditText clearFocus)
- android学习——Handler引起的内存泄露及解决方法
- Android SDK Manager无法更新的解决方案
- Android反编译和二次打包实战
- Android笔记【3】--ViewGroup & 自定义view
- Android程序调用第三方库lib***.so
- 百度导航初始化失败
- Android 图片如何高效加载与缓存 (4) —— 生成图片缩略图