Android Studio 屏幕方向以及UI界面状态的保存

package com.example.orientation;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
/*
    = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
    本实例主要学习,屏幕翻转时,界面如何自适应,创建横屏布局
    1.禁止切换横屏:在 AndroidManifest.xml-->application->activity->中设置如下代码(android:screenOrientation="portrait")
      <activity android:name=".MainActivity" android:screenOrientation="portrait" >
    2. 创建 Landscape 布局,横屏时,会自动加载 Landscape 的布局界面(清单文件中,注意去掉 android:screenOrientation="portrait" )
    3. 翻转屏幕时,保存窗口控件的状态值;

    = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
 */
    Button button;
    TextView textView;

    String TAG = "myTag";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button  = findViewById(R.id.button );
        textView = findViewById(R.id.textView);

        //如果State中的值不为空,如果有相应的这个组件的值,则读取出来赋值上去
        if(savedInstanceState !=null)
        {
            String s = savedInstanceState.getString("key");
            textView.setText(s);
        }

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                textView.setText(button.getText());
            }
        });
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d(TAG,"onDestroy:");
    }

    @Override
    //将 textView 中的值,先保存到 outState 中(键值对)
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putString("key",textView.getText().toString());
    }
}

  项目:Orientation

原文地址:https://www.cnblogs.com/gfwei/p/11770553.html

时间: 2024-10-13 14:09:09

Android Studio 屏幕方向以及UI界面状态的保存的相关文章

Android Studio 图形化设计 UI 界面

我们开发 Android 程序必定是从 UI 开始的 ,使用最新版的 Android Studio 可以在图形化界面下设计软件 UI, Android Studio 默认的布局是 ConstraintLayout 通过拖动可以快捷的将我们想要的文字.图片.输入框放到界面中 通过各种国定对齐方式可以方便的设计程序 UI ,并让界面适应不同的屏幕大小 其中值得注意的是,魔法棒按钮可以智能的固定已有的组件,十分方便 一般用好辅助线和边界线就可以设计出比较整齐的界面来 原文地址:https://www.

Android之十二微信UI界面设计

Android之十二微信UI界面设计 corners_bg.xml <span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color=&qu

Android研究之动态创建UI界面详解

 Android的基本UI界面一般都是在xml文件中定义好,然后通过activity的setContentView来显示在界面上,这是Android UI的最简单的构建方式.其实,为了实现更加复杂和更加灵活的UI界面,往往需要动态生成UI界面,甚至根据用户的点击或者配置,动态地改变UI,本文即介绍该技巧.对事件和进程的可能安卓设备实现触摸事件的监听,跨进程 假设Android工程的一个xml文件名为activity_main.xml,定义如下: 1 2 3 4 5 6 7 8 9 10 11

Android开发1:基本UI界面设计——布局和组件

前言 啦啦啦~本学期要开始学习Android开发啦~ 博主在开始学习前是完完全全的小白,只有在平时完成老师要求的实验的过程中一步一步学习~从此篇博文起,博主将开始发布Android开发有关的博文,希望能在学习中和各位共同探讨,一起交流,共同进步~ 话不多说,首先进入我们的正题~Android开发一基本UI界面设计——布局和组件(Android Studio的配置安装使用等在以后为各位补上~) 基础知识 Android的组件分为布局和控件.布局,就是让控件在里面按一定的次序排列好的一种组件,本身并

android自适应屏幕方向和大小

一:不同的layout Android手机屏幕大小不一,有480x320, 640x360, 800x480.怎样才能让App自动适应不同的屏幕呢?    其实很简单,只需要在res目录下创建不同的layout文件夹,比如layout-640x360,layout-800x480,所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用. 二:hdpi.mdpi.ldpi 在之前的版本中,只有一个drawable,而2.1版本中有drawa

Android自适应屏幕方向、大小和分辨率,及字体设置

屏幕大小 1.不同的layout Android手机屏幕大小不一,有480x320,640x360,800x480.怎样才能让App自动适应不同的屏幕呢? 其实很简单,只需要在 res目录下创建不同的layout文件夹,比如:layout-640x360,layout-800x480,所有的layout文件在编译之后都会 写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用. 2.hdpi.mdpi.ldpi 之前的版本中,只有一个drawable,而2.1版本中有dra

Android Studio配置Git及Git文件状态说明

Android Studio配置Git还是比较简单的,麻烦的是可能中间出现各种问题.如果你想了解或感兴趣,请往下看. 首先你得下载Git客户端,网址:http://git-scm.com/download/. 根据需要下载相应的版本,并安装.然后在Android Studio中指定git.exe,点击“Test”,成功则会弹出以下提示. 由于我用的是Android Studio 2.0 Preview,根本不存在“Enable Version Control Integration”提示,害我找

Android screenOrientation 屏幕方向的设定与控制

AndroidManifest.xml中Activity标签中的设定值: android:screenOrientation="landscape"为90度(横屏) android:screenOrientation="reverseLandscape"为270度(反向横屏) android:screenOrientation="sensorLandscape"为90度和270度根据G-sensor切换(横屏切换) android:screenO

android之屏幕方向切换

今天看到andoird屏幕的切换,因为在游戏中切换横向时非常正常的一件事. 首先如果我们不想切换方向那么我们可以在androidmainfest.xml中对activity的属性进行添加. android:sreenOrientation 属性值 portrait表示垂直 landscape表示水平 但是我不想这么做,我添加水平和垂直按钮实现屏幕的切换. 添加两个按钮,在监听函数中实现 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION