[Android Studio] -- Day 2 主题变换Theme01

前言

刚好读到layout的部分,来做之前都没试过的APP色系转换。


正文

这次利用spinner来切换layout

layout画面

https://ithelp.ithome.com.tw/upload/images/20210129/20134772LvR0i4bR4P.pnghttps://ithelp.ithome.com.tw/upload/images/20210129/20134772dnAxOsjkCI.png

code

  • onCreate
    Spinner spinner;
    String[] color = {"null","origin","dark"};
    //null是用来判断Toast的,可以删除

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

        spinner=findViewById(R.id.spinner);
        ArrayAdapter<String> colorList = new ArrayAdapter<>(MainActivity.this,
                android.R.layout.simple_spinner_dropdown_item,
                color);
        spinner.setAdapter(colorList);

        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(MainActivity.this, "您选择了:" + color[position], Toast.LENGTH_SHORT).show();
                if(color[position]=="dark"){
                    layout2();
                }
                if(color[position]=="origin"){
                    layout1();
                }
            }
            @Override
            public void onNothingSelected(AdapterView<?> parent) {}
        });
    }
  • layout1
    跟上面是一样的,layout切换时要重启spinner的功能
private void layout1() {
        setContentView(R.layout.activity_main); //换layout
        
        spinner=findViewById(R.id.spinner);
        ArrayAdapter<String> colorList = new ArrayAdapter<>(MainActivity.this,
                android.R.layout.simple_spinner_dropdown_item,
                color);
        spinner.setAdapter(colorList);

        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(MainActivity.this, "您选择了:" + color[position], Toast.LENGTH_SHORT).show();
                if(color[position]=="dark"){
                    layout2();
                }
                if(color[position]=="origin"){
                    layout1();
                }
            }
            @Override
            public void onNothingSelected(AdapterView<?> parent) {}
        });

    }
  • layout2
    同layout1,只是要记得换成layout2的名称
    setContentView(R.layout.activity_main2);
    spinner=findViewById(R.id.spinner2);

结语

存档很重要QAQ。
存档很重要QAQ。
存档很重要QAQ。
这次走的是阳春版的,layout写死的。有机会可以试试看在.java里面直接修正color.xml的资讯。


<<:  如何执行一支程序?

>>:  身份验证服务交换(The Authentication Service (AS) Exchange)

Leetcode: 278. First Bad Version

思路 呼叫API的次数越少越好,因为不确定错误会是在前面一点的版本出现,还是後面一点的版本出现,因此...

.obj 之绘制 & Skybox

大家好,我是西瓜,你现在看到的是 2021 iThome 铁人赛『如何在网页中绘制 3D 场景?从 ...

Day 4:Kotlin 程序设计基础入门 (3)

本篇文章同步发表在 HKT 线上教室 部落格,线上影音教学课程已上架至 Udemy 和 Youtu...

Day 5 网路宝石:AWS VPC 架构 Routes & Security (上)

两个 Private Subnet 的沟通方式 Private Subnet(下图#1)是一封闭的...

Google Script+LINE 打造聊天机器人 #1-工具介绍

专案简介 起源:方便自己与亲友查询汇率和日期,以及定时提醒汇率以利购买外汇。 功能:查询(1)即时汇...