Android Spinner实现12生肖的页面跳转
需求:通过下拉菜单,获取12生肖的关键字,根据关键字做页面跳转。假设在主界面的下拉菜单中选择生肖“猪”,它的相应界面为界面二。在界面二中设置一个button,文字显示为BACK,对其同样做监听,点击后能够回到主界面。
实现过程如下:
首先在 res/values 文件夹下新建 array.xml 文件夹:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="shengxiao">
<item>鼠</item>
<item>牛</item>
<item>虎</item>
<item>兔</item>
<item>龙</item>
<item>蛇</item>
<item>马</item>
<item>羊</item>
<item>猴</item>
<item>鸡</item>
<item>狗</item>
<item>猪</item>
</string-array>
</resources>
主布局文件
// An highlighted block
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="生肖查询"
android:textColor="#458"
android:gravity="center"
android:layout_marginTop="70dp"
android:layout_marginBottom="40dp"
android:textSize="30sp"
android:entries="@array/shengxiao" />
<TextView
android:id="@+id/xiao"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="选择您的生肖:"
android:layout_marginLeft="20dp"
android:textSize="25sp"/>
<Spinner
android:id="@+id/sipnner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:entries="@array/shengxiao">
</Spinner>
<Button
android:id="@+id/btn"
android:layout_width="134dp"
android:layout_height="37dp"
android:layout_marginLeft="100dp"
android:layout_marginTop="50dp"
android:background="#D8D8EB"
android:text="enter" />
主界面图
界面二布局文件
// An highlighted block
<ImageView
android:id="@+id/imageView"
android:layout_width="354dp"
android:layout_height="272dp"
android:src="@drawable/hjz" />
<TextView
android:id="@+id/txt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="夜间九点至十一点,属亥时。夜深人静,能听见猪拱槽的声音,于是称作“亥猪”"
android:textSize="25sp" />
<Button
android:id="@+id/btn1"
android:layout_width="84dp"
android:layout_height="37dp"
android:layout_marginLeft="250dp"
android:layout_marginTop="40dp"
android:background="#fef"
android:text="back" />
界面二图
主布局的java代码
提示: 通过下拉菜单获取关键字:“关键字” = spinner.getSelectedItem().toString();
// An highlighted block
package com.example.jinjin.firstproject;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Spinner;
/**
* Created by jinjin on 2020/4/29.
*/
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
Spinner spinner;
static String str;
Button btn;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner= (Spinner) findViewById(R.id.sipnner);
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(this);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
str = spinner.getSelectedItem().toString();
Intent intent=new Intent(MainActivity.this,layoutActicity.class);
startActivity(intent);
}
});
}
@Override
public void onClick(View view) {
}
}
界面二的java代码
提示:界面二的布局对于12个生肖来说,并没有改变,不需做12个跳转页面,可以通过switch语句解决。图像替换的语句:
case "鼠":
imageView.setImageResource(R.drawable.shu);
txt.setText("夜间十一点至次日凌晨一点,属子时,正是老鼠趁夜深人静,频繁活动之时,称“子鼠”。");
break;
完整代码如下:
// An highlighted block
package com.example.jinjin.firstproject;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
/**
* Created by jinjin on 2020/4/29.
*/
public class layoutActicity extends AppCompatActivity implements View.OnClickListener{
Button btn;
ImageView imageView;
TextView txt;
MainActivity m;
String Str = m.str;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout);
btn = (Button) findViewById(R.id.btn1);
btn.setOnClickListener(this);
txt = (TextView) findViewById(R.id.txt);
imageView = (ImageView) findViewById(R.id.imageView);
switch (Str) {
case "鼠":
imageView.setImageResource(R.drawable.shu);
txt.setText("夜间十一点至次日凌晨一点,属子时,正是老鼠趁夜深人静,频繁活动之时,称“子鼠”。");
break;
case "牛":
imageView.setImageResource(R.drawable.niu);
txt.setText("凌晨一点至三点,属丑时。牛习惯夜间吃草,农家常在深夜起来挑灯喂牛,故称“丑牛”。");
break;
case "虎":
imageView.setImageResource(R.drawable.hu);
txt.setText("凌晨三点至五点,属寅时。此时昼伏夜行的老虎最凶猛,古人常会在此时听到虎啸声,故称“寅虎。");
break;
case "兔":
imageView.setImageResource(R.drawable.tu);
txt.setText("清晨五点至七点,属卯时。天刚亮,兔子出窝,喜欢吃带有晨露的青草,故为“卯兔。");
break;
case "龙":
imageView.setImageResource(R.drawable.long1);
txt.setText("早晨七点至九点,属辰时。此时一般容易起雾,传说龙喜腾云驾雾,又值旭日东升,蒸蒸日上,故称“辰龙”。");
break;
case "蛇":
imageView.setImageResource(R.drawable.she);
txt.setText("上午九点至十一时,属巳时。大雾散去,艳阳高照,蛇类出洞觅食,故作“巳蛇。");
break;
case "马":
imageView.setImageResource(R.drawable.ma);
txt.setText("中午十一点至一点,属午时。古时野马未被人类驯服,每当午时,四处奔跑嘶鸣,故称“午马。");
break;
case "羊":
imageView.setImageResource(R.drawable.yang);
txt.setText("午后一点至三点,属未时。有的地方管此时为“羊出坡”,意思是放羊的好时候,故称“未羊”。");
break;
case "猴":
imageView.setImageResource(R.drawable.hou);
txt.setText("下午三点至五点,属申时。太阳偏西了,猴子喜在此时啼叫,故为“申猴”");
break;
case "鸡":
imageView.setImageResource(R.drawable.ji);
txt.setText("下午五点至七点,属酉时。太阳落山了,鸡在窝前打转,故称“酉鸡”。");
break;
case "狗":
imageView.setImageResource(R.drawable.gou);
txt.setText("傍晚七点至九点,属戌时。人劳碌一天,闩门准备休息了。狗卧门前守护,一有动静,就汪汪大叫,故为“戌狗”。");
break;
case "猪":
imageView.setImageResource(R.drawable.hjz);
txt.setText("夜间九点至十一点,属亥时。夜深人静,能听见猪拱槽的声音,于是称作“亥猪”。");
break;
}
}
@Override
public void onClick(View view) {
Intent intent = new Intent(layoutActicity.this, MainActivity.class);
startActivity(intent);
}
}