栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

ActivityGroup,Activity,TabHost注意问题,2021最新Android面试题目解答

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ActivityGroup,Activity,TabHost注意问题,2021最新Android面试题目解答

Bundle b

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

undle = new Bundle();

bundle.putSerializable(“pollingRequestvo”, pollingRequestvo);

bundle.putInt(“type”, type);

intent.putExtras(bundle);

Holder.viewSwitcher.removeAllViews();

View view = ((ActivityGroup) getParent())

.getLocalActivityManager()

.startActivity(PollingResultActivity.class.getSimpleName(),

intent).getDecorView();

Holder.viewSwitcher.addView(view);

currentActivity = false;

}

这里的view实际是我们的父Activity(ActivityGroup)中的容器。

1.3、getLocalActivityManager().startActivity()前面一个参数PollingManagementActivitySub.class也是在非常重要,我在项目开发的时候,被它坑死了 ,它可以随便设置,但是当我们需要在各个Activity跳转(跳转回来)的时候(并且不要求重新创建新的Activity的时候),这个值必须保证相同,如果要求重新创建Activity,这个值可以不相同。

3、当我们在各个子Activity之间跳转的时候,希望点击返回按钮进行不同的操作,会出现各种出乎意料的操作,我们应该监听返回按钮,再进行具体操作,当然监听返回按钮不是用onBackPress()方法,而是在父类(即ActivityGroup中)调用dispatchKeyEvent这个方法进行监听,这样无论我们在父Activity还是在子Activity中点击按键都会被分发这个按键事件,如果这个事件处理完毕返回true:

如下:

@Override

public boolean dispatchKeyEvent(KeyEvent event) {

if (event.getAction() == event.ACTION_DOWN) {

switch (event.getKeyCode()) {

case KeyEvent.KEYCODE_BACK:

String activityName = getCurrentActivity().getClass()

.getSimpleName();

if (activityName.equals(“PollingManagementActivitySub”)) {

new alertDialog.Builder(this)

.setTitle(“注意”)

.setMessage(“确定要退出手机网管吗?”)

.setIcon(android.R.drawable.ic_menu_help)

.setPositiveButton(“确定”,

new DialogInterface.onClickListener() {

public void onClick(

DialogInterface dialog,

int which) {

dialog.dismiss();

finish();

}

})

.setNegativeButton(“取消”,

new DialogInterface.onClickListener() {

public void onClick(

DialogInterface dialog,

int which) {

dialog.cancel();

}

}).show();

} else if (activityName.equals(“PollingResultActivity”)) {

LinearLayout container = (LinearLayout) findViewById(R.id.viewSwitcher);

container.removeAllViews();

Intent intent = new Intent(getCurrentActivity(),

PollingManagementActivitySub.class);

intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

View view = getLocalActivityManager().startActivity(

PollingManagementActivitySub.class.getSimpleName(),

intent).getDecorView();

container.addView(view);

}

break;

}

}

return true;

}

今天又遇到一个纠结的问题ActivityGroup的子Activity跳转的时候遇到Android2.3.3与Android4.0的不兼容的问题,在Android2.3.3中运行好好的,但是到了Android4.0的时候,出现一个子Activity跳转到另一个Activity的时候,失去焦点的问题。必须在跳转的时候加上下面的代码(在ActivityGroup的dispatchKeyEvent方法中):

Holder.linearLayout.setFocusable(true);

Holder.linearLayout.setFocusable(true);

Holder.linearLayout.requestFocusFromTouch();

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/644904.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号