android-如何修改 activity 中的布局

问题描述

如何修改 activity 中的布局

当方向改变时,我想让activity 不被毁坏,因此我在manifest 文件中添加:

<activity
          android:name="MyActivity"
          android:configChanges="orientation|keyboard|keyboardHidden">
 </activity>

现在的问题是每当方向转化成横向方式时,我如何才能使它转向一个新的布局?
在 layout-land 或者 layout-port 里加入布局文件还是不能正常运行。

解决方案

首先在清单文件加权限:<uses-permission android:name="android.permission.CHANGE_CONFIGURATION">
然后重写onConfigurationChanged()方法.

@Override
public void onConfigurationChanged(Configuration newConfig) {
    // TODO Auto-generated method stub
    super.onConfigurationChanged(newConfig);
    if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){
        //横向
        setContentView(R.layout.main_landscape);
        //重新实例化组件和设置监听
    }else{
        //竖向
        setContentView(R.layout.main);
        //重新实例化组件和设置监听
    }
}

最后别忘了在onCreate()时加上判断,

if(getResources().getConfiguration().orientation ==Configuration.ORIENTATION_LANDSCAPE){
    setContentView(R.layout.main_landscape);
}else {
    setContentView(R.layout.main);
}

解决方案二:

如果在 /res/layout 有竖向布局 main.xml,在/res/layout-land 有横向布局main.xml,在onConfigurationChanged()中应该像这样设置:

public void onConfigurationChanged(Configuration newConfig) {
            super.onConfigurationChanged(newConfig);
            setContentView(R.layout.main);
    ...
    ...
    ...
   }
时间: 2024-10-31 21:29:28

android-如何修改 activity 中的布局的相关文章

android如何在activity 中启动和创建一个widget?

问题描述 如题android如何在activity 中启动和创建一个widget? 问题补充:飞雪无情 写道 解决方案 要是在activity创建一个桌面上的widget的话 我试过是不行的.但是可以实现widget里创建一个activity.解决方案二:dialog也是一种widget,都差不多的.按你说的这个意思就是编程的方式了,不用xml 布局文件,你可以这样写public class HelloAndroid extends Activity { /** Called when the

Android开发向activity中的webview传递参数

问题描述 Android开发向activity中的webview传递参数 各位帅气可爱爱卖萌的大神们,好难为情我又要打扰你们,小弟被一问题困扰好久了,实在是辗转反侧,难以入睡,夜不能寐,所以想了好久还是决定请教你们. 问题如下, 工程有2个activity,activity①有1个edittext和1个button activity②有一个webview 我想在activity①里的edittext输入一串网址,然后点击button就可以让activity②显示出来,并让webview打开act

Android编程之Activity中onDestroy()调用分析_Android

本文分析了Android编程之Activity中onDestroy()调用方法.分享给大家供大家参考,具体如下: 刚刚一个BUG让我发现,如果 activity 实现了一个回调接口,然后使用 this 设置给需要回调接口的方法,这种应用场景比较常见,最常见的就是实现 onClickListener 接口,然后 findViewById().setOnClickListenr(this) 如果,这个回调接口设置到了一个静态对象(单例模式),当 activity finish() 的时候(按返回键,

Android实现从activity中停止Service的方法_Android

本文实例讲述了Android实现从activity中停止Service的方法.分享给大家供大家参考,具体如下: 1.在AndroidManifest.xml注册Service <service android:name=".service.SensorService" > <intent-filter> <action android:name="ITOP.MOBILE.SIMPLE.SERVICE.SENSORSERVICE"/>

Android实现从activity中停止Service的方法

本文实例讲述了Android实现从activity中停止Service的方法.分享给大家供大家参考,具体如下: 1.在AndroidManifest.xml注册Service <service android:name=".service.SensorService" > <intent-filter> <action android:name="ITOP.MOBILE.SIMPLE.SERVICE.SENSORSERVICE"/>

Android学习笔记--Activity中使用Intent传值示例代码_Android

Intent,又称为意图,是一种运行时绑定机制,它能在程序运行的过程中链接两个不同的组件(Activity.Service.BroadcastReceiver).通过Intent,程序可以向Android表达某种请求或意愿,Android会根据意愿的内容选择适当的组件来请求. 在这些组件之间的通讯中,主要是由Intent协助完成的.Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将Intent传递给调用的组件,

Android学习笔记--Activity中使用Intent传值示例代码

Intent,又称为意图,是一种运行时绑定机制,它能在程序运行的过程中链接两个不同的组件(Activity.Service.BroadcastReceiver).通过Intent,程序可以向Android表达某种请求或意愿,Android会根据意愿的内容选择适当的组件来请求. 在这些组件之间的通讯中,主要是由Intent协助完成的.Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将Intent传递给调用的组件,

Android Fragment和Activity互相通讯

一. 管理Fragment           管理Fragment在你的Activity你需要使用一个名为FragmentManager的类,通过调用getFragmentManager() 方法来实例化该管理类在你的Activity种. FragmentManager 类一些主要的方法有通过findFragmentById()来获取一个Activity中有关Fragment布局.当然还有类似 findFragmentByTag()方法,以及唐Fragment中出栈的popBackStack(

wifi-android广播在activity中接收不到

问题描述 android广播在activity中接收不到 我想在activity中接收广播的wifi状态信息,但是我写的代码接收不到,求教啊~! 1.发送的广播类 ```public class ConnectionChangeReceiver extends BroadcastReceiver { Context context; public ConnectionChangeReceiver(Context context) { // TODO Auto-generated construc