前言
刚好读到layout的部分,来做之前都没试过的APP色系转换。
正文
这次利用spinner来切换layout
layout画面
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的资讯。