android ActivityGroup实现activity的局部跳转
来源:互联网 发布:数据库认证哪个含金量 编辑:程序博客网 时间:2024/06/18 15:37
像UC浏览器下面一排的功能按钮,当你点击一个,跳转activity,实际上这排按钮是不应该动的,因为每一页都需要这排按钮。于是,我们就需要只跳转上面部份,有点像HTML的iframe,于是ActivityGroup帮我们实现了这一功能。
有三个activity和三个布局文件。其中,main是主界面,activity1和activity2是要跳转的两个页面。
下面贴上完整代码:
main.java
package wzq.android.three;
import android.app.ActivityGroup;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.widget.Button;
import android.widget.LinearLayout;
public class main extends ActivityGroup {
private Button button1;
private Button button2;
private LinearLayout container;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button1 = (Button)findViewById(R.id.button1);
button2 = (Button)findViewById(R.id.button2);
container = (LinearLayout) findViewById(R.id.container);
button1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
container.removeAllViews();
Intent intent = null;
intent = new Intent(main.this,TestActivity1.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Window subActivity = getLocalActivityManager().startActivity("subActivity", intent);
container.addView(subActivity.getDecorView(),LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
}
}
);
button2.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
container.removeAllViews();
Intent intent = null;
intent = new Intent(main.this,TestActivity2.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Window subActivity = getLocalActivityManager().startActivity("subActivity", intent);
container.addView(subActivity.getDecorView(),LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
}
}
);
init();
}
private void init(){
container.removeAllViews();
Intent intent = null;
intent = new Intent(main.this,TestActivity1.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Window subActivity = getLocalActivityManager().startActivity("subActivity", intent);
container.addView(subActivity.getDecorView(),LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
}
}
TestActivity1.java
package wzq.android.three;
import android.app.Activity;
import android.os.Bundle;
public class TestActivity1 extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.ac1);
}
}
TestActivity2.java
package wzq.android.three;
import android.app.Activity;
import android.os.Bundle;
public class TestActivity2 extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.ac2);
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:id="@+id/container" android:orientation="horizontal"
android:layout_width="fill_parent" android:layout_height="100dip"
android:background="#0000ff">
</LinearLayout>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent" android:layout_height="wrap_content">
<Button android:id="@+id/button1" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="窗体1" />
<Button android:id="@+id/button2" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="窗体2" />
</LinearLayout>
</LinearLayout>
ac1.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="aaaaaaaa111111111111"
/>
</LinearLayout>
ac2.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="aaaaaaaa22222222222"
/>
</LinearLayout>
顺便补充一下intent flag方面的知识,我抄来的
一、Activity和Task(栈)的关系
Task就像一个容器,而Activity就相当与填充这个容器的东西,第一个东西(Activity)则会处于最下面,最后添加的东西(Activity)则会在最低端。从Task中取出东西(Activity)则是从最顶端取出。
二、界面跳转和服务的启动都会用到Intent,现在介绍Intent Flag是关于Activity的跳转
Intent intent = new Intent(this,xxx.class);
//如果activity在task存在,拿到最顶端,不会启动新的Activity
intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
//如果activity在task存在,将Activity之上的所有Activity结束掉
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//默认的跳转类型,将Activity放到一个新的Task中
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//如果Activity已经运行到了Task,再次跳转不会在运行这个Activity
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
写了个小升级版,进入Activity1后立即跳以Activity3
package wzq.android.three;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Window;
import android.view.ViewGroup.LayoutParams;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.ac1);
main m = (main)getParent();
m.container.removeAllViews();
Intent intent = null;
intent = new Intent(m,TestActivity3.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Window subActivity = m.getLocalActivityManager().startActivity("subActivity", intent);
m.container.addView(subActivity.getDecorView(),LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
}
}
- android ActivityGroup实现activity的局部跳转
- android ActivityGroup中跳转activity的关键代码
- ActivityGroup解决TabHost中多个Activity的跳转
- Android ActivityGroup实现的TabHost 保留activity原来状态
- Android实现Activity的跳转
- Android实现通用的ActivityGroup
- Android实现通用的ActivityGroup
- android 实现各activity之间的跳转
- 实现android activity之间的跳转
- Android的activity跳转动画实现
- Android的activity跳转动画实现
- activitygroup的子activity中嵌套webview,利用webview与js交互,在实现js点击的内部类代码中实现activity跳转出现的线程问题
- ActivityGroup---activity的管理器
- android开发--Activity之间的跳转实现、activity传参
- ActivityGroup解决TabHost中多个Activity跳转
- 关于使用ActivityGroup实现活动跳转带来的问题
- android Activity的跳转
- Android实现倒计时跳转Activity
- request.fetcontextPath() 设置相对路径问题!
- EasyUI的异步Tree使用
- 高斯图像滤波原理及其编程离散化实现方法
- UVA 11624 Fire!(图论BFS)
- 硬盘丢失的文件还能恢复吗
- android ActivityGroup实现activity的局部跳转
- 昨晚一夜雨
- MySQL在C++中使用后务必释放 result,否则会造成内存泄露
- 有关蓝色RGB的数值
- 图像处理中各种边缘检测的微分算子简单比较(Sobel,Robert, Prewitt,Laplacian,Canny)
- 稳定婚姻问题
- 关于堆栈的详解
- JavaScript(8)数组对象
- qq在线状态客户代码与图标