为了以后可以直接查看自己的代码,不用再打开软件,还是写个博客吧。。。
第一次做,只完成了必要的功能,修饰什么的一概没有,喜欢的自己去加,反正咱们做的也不会投入使用。。。
老师的要求:
计算已知生日对应的星座:
要求:1、有3个界面(欢迎界面,输入界面,结果界面)
2、输入生日时使用DatePicker控件或者输入文本都可以
3、响应欢迎界面的点击事件:
先看一下我的界面,多么的朴实无华!!!
用户必须按照要求输入生日,如果没有检测到字符“-”的话,就会出现以下界面:
弹窗的那个椭圆形,一会就会消失的。
点击按钮,又会回到输入界面额。就是这么一个循环界面。
点击结束查询之后又会回到开始界面,这是一个循环使用的小程序,只添加了一点点代码,起初是为了方便自己测试查看bug,不需要一次又一次的运行,毕竟等的时间蛮长的,后来也没有删,感觉这个功能还不错。
最后再说一点,系统没有做太强的排除性,我感觉太复杂了,,,有兴趣的小伙伴自己去算吧。
哦,不过我这里没有问出生年,也就没有必要管你出生那一年2月到底28天还是29天了。
这个设置的呢,就是月份要在1-12之间,日期要在1-31之间。其他的不管了,不管哪一个月30天还是31天,我就不做了,虽然很简单,但蛮复杂的,要一个一个的判断。所以,就算你输入4-31,我也不会报错。。。
但是如果你输入以下这个情况的话。。。。。。
。呵呵
对了,这里面的很多图片都是我本机的,大家记得设置自己需要的照片。
上代码!
虽然东西不多,但毕竟涉及到了7处的信息,有.java和.xml文件,所以我按照这个顺序贴代码了。也就对应了之前的三个界面要求。
嗯,如果你要复制的话,看清楚package,或者,你只复制具体代码。
欢迎界面
.java
package com.example.a86134.myapplication;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
//欢迎界面
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv1=findViewById(R.id.tv1);
Button bt1=findViewById(R.id.bt1);
}
public void startActivity2(View view){
startActivity(new Intent(this,Main2Activity.class));
}
}
.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.a86134.myapplication.MainActivity">
<TextView
android:id="@+id/tv1"
style="@style/Widget.AppCompat.TextView.SpinnerItem"
android:layout_width="348dp"
android:layout_height="47dp"
android:text="点击下方按钮进入星座查询小程序"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textColor="@android:color/holo_red_dark"
android:textSize="22sp"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.506"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.114" />
<Button
android:id="@+id/bt1"
android:layout_width="160dp"
android:layout_height="64dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:fontFamily="sans-serif"
android:onClick="startActivity2"
android:text="进入系统查星座"
android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.498" />
</android.support.constraint.ConstraintLayout>
输入界面
.java
package com.example.a86134.myapplication;
import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
//输入界面
public class Main2Activity extends AppCompatActivity {
EditText et1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Intent intent=getIntent();
Button bt2=findViewById(R.id.bt2);
et1=findViewById(R.id.et1);
bt2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String d=et1.getText().toString();
if(!"".equals(d)){
Intent intent=new Intent(Main2Activity.this,Main3Activity.class);
Bundle bundle=new Bundle();
// bundle.putString("str",d);
bundle.putCharSequence("str",d);
intent.putExtras(bundle);
startActivity(intent);
}
else {
Toast.makeText(Main2Activity.this, "请先输入您的生日信息!", Toast.LENGTH_SHORT).show();
return ;
}
}
});
}
}
.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.a86134.myapplication.Main2Activity">
<TextView
android:id="@+id/tv2"
android:layout_width="233dp"
android:layout_height="47dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="请输入您的生日信息:"
android:textColor="@android:color/holo_red_dark"
android:textSize="22sp"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.503"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.287" />
<Button
android:id="@+id/bt2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="查询"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.695" />
<EditText
android:id="@+id/et1"
android:layout_width="800px"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:ems="10"
android:hint="请按照mm-dd格式输入生日"
android:inputType="date"
android:selectAllOnFocus="true"
android:singleLine="true"
android:textColorHint="#95a1aa"
android:textScaleX="1.5"
android:textStyle="italic"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.498" />
</android.support.constraint.ConstraintLayout>
结果界面
.java
package com.example.a86134.myapplication;
import android.content.Intent;
import android.support.v4.app.BundleCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class Main3Activity extends AppCompatActivity {
int m,d;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
TextView tv3=findViewById(R.id.tv3);
Button bt3=findViewById(R.id.bt3);
ImageView iv1=findViewById(R.id.iv1);
String n="";
String month="",day="";
Intent intent=getIntent();
Bundle bundle=intent.getExtras();
String dd=bundle.getString("str");
int p=dd.indexOf("-");
if(p==-1){
n="您输入的生日格式有误!";
iv1.setImageResource(R.drawable.ncl);
tv3.setText(n);
bt3.setText("点我回去接着输入!");
bt3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(Main3Activity.this,Main2Activity.class);
startActivity(intent);
}
});
Toast.makeText(Main3Activity.this, "记得按照mm-dd格式输入!", Toast.LENGTH_SHORT).show();
return ;
}
m=Integer.parseInt(dd.substring(0,p));
d=Integer.parseInt(dd.substring(p+1,dd.length()));
if(m>0 && m<13 && d>0 && d<32){
if((m==3&&d>20)||(m==4)&&d<21){
n="白羊座";
iv1.setImageResource(R.drawable.byz);
}
else if((m==4&&d>20)||(m==5&&d<21)){
n="金牛座";
iv1.setImageResource(R.drawable.jnz);
}
else if((m==5&&d>20)||(m==6&&d<22)){
n="双子座";
iv1.setImageResource(R.drawable.shzz);
}
else if((m==6&&d>21)||(m==7&&d<23)){
n="巨蟹座";
iv1.setImageResource(R.drawable.jxz);
}
else if((m==7&&d>22)||(m==8&&d<23)){
n="狮子座";
iv1.setImageResource(R.drawable.szz);
}
else if((m==8&&d>22)||(m==9&&d<23)){
n="处女座";
iv1.setImageResource(R.drawable.cnz);
}
else if((m==9&&d>22)||(m==10&&d<23)){
n="天秤座";
iv1.setImageResource(R.drawable.tcz);
}
else if((m==10&&d>22)||(m==11&&d<22)){
n="天蝎座";
iv1.setImageResource(R.drawable.txz);
}
else if((m==11&&d>21)||m==12&&d<22){
n="射手座";
iv1.setImageResource(R.drawable.ssz);
}
else if((m==12&&d>21)||(m==1&&d<20)){
n="摩羯座";
iv1.setImageResource(R.drawable.mjz);
}
else if((m==1&&d>19)||(m==2&&d<19)){
n="水瓶座";
iv1.setImageResource(R.drawable.spz);
}
else if((m==2&&d>18||(m==3&&d<21))){
n="双鱼座";
iv1.setImageResource(R.drawable.syz);
}
}
else{
n="您输入的生日信息有误!";
iv1.setImageResource(R.drawable.ncl);
tv3.setText(n);
bt3.setText("点我回去接着输入!");
bt3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(Main3Activity.this,Main2Activity.class);
startActivity(intent);
}
});
Toast.makeText(Main3Activity.this, "有点生活常识好不好!", Toast.LENGTH_SHORT).show();
return ;
}
tv3.setText(n);
bt3.setText("结束查询");
bt3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(Main3Activity.this,MainActivity.class);
startActivity(intent);
}
});
}
}
.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/tv3"
style="@style/Widget.AppCompat.TextView.SpinnerItem"
android:layout_width="300dp"
android:layout_height="40dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="结果"
android:gravity="center_horizontal"
android:textColor="@android:color/holo_red_dark"
android:textSize="24sp" />
<ImageView
android:id="@+id/iv1"
android:layout_width="280dp"
android:layout_height="200dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:scaleType="fitCenter"
/>
<Button
android:id="@+id/bt3"
android:layout_width="200dp"
android:layout_height="50dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="结束查询"
/>
</LinearLayout>
AndroidMainifest.xml文件
在这里可以设置哪一个为主界面,以及个页面的名字(左上角的那个)。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.a86134.myapplication">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="欢迎您的使用">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Main2Activity"
android:label="星座查询界面"></activity>
<activity android:name=".Main3Activity"
android:label="星座查询结果"></activity>
</application>
</manifest>