很抱歉,项目工程找不到,等找到了,加一个 Github 链接。

1.系统需求分析

1.1 系统功能及框图

框图


功能

(1)用户注册。该功能通过填写用户名、密码、确认密码、邮箱号、随机得到的验证码来得到一个属于自己的登录账号和密码。
(2)登录。输入自己的用户名和密码,跳转到通过年月日来测试两个人的星座匹配度。
(3)密码找回。通过注册时使用的邮箱进行密码找回。
(4)通过生日进行星座匹配。
(5)通过星座选择直接进行星座匹配。
(6)通过双方的星座得到星座匹配度。

1.2 系统需求

(1)技术

本系统采用 Android 基本框架。开发工具:Eclipse 软件,Android 开发工具 SDK、ADT 等,一部基于 Android 系统的手机。开发语言:java。操作系统:Windows 10。这些开发工具功能强大并且易得,使得开发此应用程序变得简单方便。

(2)实用性

在当下社会,“星座”是一个很热门的词。双方星座是否匹配也是情侣之间关心的问题之一。并且现在多数手机搭载的是 Android 系统。因此,此应用程序具有社会实用性。

1.3 该项目涉及到的技术点

(1)使用 spinner 实现下拉列表,通过 ArrayAdapter 来插入数据,用于用户去选择星座。
(2)使用 SharedPrefenrences 来记住用户名和密码。使得用户在以后使用此应用程序时可以直接登录,而不需要输入用户和密码。
(3)使用了数据库辅助类 SQLiteOpenHelper 类来进行数据库的操作。数据库中储存了用户名的 ID 号、用户名、密码和邮箱。在用户注册账号时向数据库中增加记录。当用户忘记了密码时可输入邮箱,通过查找数据库找到对应的用户名和密码。
(4)使用 MediaPlayer 来播放音乐。当用户点击登录并且成功登录后,系统会播放一首浪漫的音乐。
(5)通过 Toast 来提示用户什么地方填错了或者注册成功了等等。提高了应用程序的交互性。
(6)在验证码上,通过使用数学的 Random 函数来得到一个验证码。通过字符串 equals 方法来验证填写的密码与确认密码是否一致以及验证码的正确性。
(7)使用 Timer 来实现自动跳转。当用户注册成功后,3s 后会自动跳转到登录界面。
(8)使用 Intent 来进行 Activity 之间的传值以及页面之间的跳转。当用户点击“开始匹配”后,系统会将此页面得到的两个星座传到 Result 这个 Activity 中,从而得出双方的星座匹配度。

2.数据存储设计

2.1 SharedPrefenrence

SharedPreferences 是 Android 平台上一个轻量级的存储类,用来保存应用的一些常用配置。
可以利用 SharedPrefenrence 实现对用户名和密码的存储。使得用户可以在以后的使用过程中直接点击登录按钮进入星座匹配界面,而不需要输入用户名和密码。
具体实现的方法为:首先,创建 SharedPreferences 对象,然后调用 SharedPreferences 对象的 edit()方法来获取一个 SharedPreferences.Editor 对象。之后向 SharedPreferences.Editor 对象中添加数据。最后调用 commit 方法将添加的数据提交。
主要代码:

//1.创建SharedPreferences对象和SharedPreferences.Editor对象
SharedPreferences mySP;
SharedPreferences.Editor editor;
String   TABLE_NAME="mytable";
mySP=getSharedPreferences(TABLE_NAME, Activity.MODE_PRIVATE);
editor=mySP.edit();
//2.向SharedPreferences.Editor对象中添加数据
editor.putString("user",user.getText().toString());
editor.putString("password",passwd.getText().toString());
//3.调用commit方法将添加的数据提交
editor.commit();
//4.打开应用程序时填入已经记住的用户名和密码
user.setText(mySP.getString("user",""));
passwd.setText(mySP.getString("password", ""));

2.2 SQLiteOpenHelper 类

通过定义一个辅助类来继承 SQLiteOpenHelper 类,实现对数据库的创建、数据表的创建、数据表的增删改查。
首先定义一个类 DBHelper 继承 SQLiteOpenHelper,在类中重写 onCreate 与 onUpgrade 方法。在数据库首次执行的时候会调用 onCreate 方法来创建数据表。
然后定义一个类 DBService,创建 DBHelper 对象。在 DBService 类里写入数据表的增删改查方法。从而通过调用这些方法实现对数据库的操作。
主要代码:

public class DBHelper extends SQLiteOpenHelper{
    private final static String DATABASE_NAME="table.db";
    private final static int DATABASE_VERSION=1;

    public DBHelper(Context context, String name, CursorFactory factory, int version) {
        super(context, DATABASE_NAME, factory, DATABASE_VERSION);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "CREATE TABLE people("
                    +"id INTEGER PRIMARY KEY AUTOINCREMENT, "
                    +"user VARCHAR(20),"
                    +"password VARCHAR(20),"
                    +"email VARCHAR(20))" ;
        db.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub

    }

}
public class DBService {
    private DBHelper helper;
    public DBService(Context context) {
        this.helper=new DBHelper(context, "table.db", null, 1);
    }
    public void insert(String user,String password,String email){
        String sql = "INSERT INTO people(user,password,email)" +
                "VALUES('"+user+"','"+password+"','"+email+"')";
        SQLiteDatabase db=helper.getWritableDatabase();
        db.execSQL(sql);
    }
    public void delete(String user){
        String sql="delete from people where user='"+user+"'";
        SQLiteDatabase db=helper.getWritableDatabase();
        db.execSQL(sql);
    }
    public Cursor query_byuser(String user){
        SQLiteDatabase db=helper.getReadableDatabase();
        String sql="select * from people where user=?";
        Cursor cursor=db.rawQuery(sql, new String[]{user});
        return cursor;
    }
    public Cursor query_byemail(String email){
        SQLiteDatabase db=helper.getReadableDatabase();
        String sql="select * from people where email=?";
        Cursor cursor=db.rawQuery(sql, new String[]{email});
        return cursor;
    }

}

2.3 数据表结构

数据表有四个属性,分别为 ID 号、用户名、密码、邮箱。ID 号为整形变量并且自动递增,用户名、密码、邮箱均为字符型变量。

3.具体编码及截图

3.1 主界面

主界面有三个 TextView 控件,分别显示“星座匹配”、“用户名”和“密码”。有两个 EditView 控件,分别用来输入用户名和密码。有三个按钮,分别用来实现登录、找回密码和注册账号。
点击“登录”按钮时,系统首先会查找 table.db 数据库的 people 表来判断此用户名是否存在。如果存在此用户名,进而判断密码是否一致。如果用户名和密码一致,则通过 Intent 跳转到星座匹配的页面。如果不一致,通过 Toast 来告诉用户用户名不存在或者密码不正确。并且点击“登录”按钮时会使用 MediaPlayer 来播放一首浪漫的音乐。
如果用户忘记密码时,可以点击“忘记密码”来找回密码。如果用户还没有账号,可以通过点击注册账号来注册自己的账号。
主要代码:

//控件的布局:
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:background="@drawable/background"
    tools:context="com.example.homework.MainActivity" >

    <TextView
        android:id="@+id/textView_user"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="180dp"
        android:text="用户名:"
        android:textSize="25sp"/>

     <TextView
        android:id="@+id/textView_password"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView_user"
        android:layout_alignTop="@+id/textView_user"
        android:layout_marginTop="35dp"
        android:text="密码:"
        android:textSize="25sp" />

    <EditText
        android:id="@+id/editText_user"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView_user"
        android:layout_alignParentRight="true"
        android:hint="请输入用户名"
        android:ems="10" />

    <EditText
        android:id="@+id/editText_password"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView_password"
        android:layout_alignParentRight="true"
        android:layout_alignLeft="@+id/editText_user"
        android:ems="10"
        android:hint="请输入密码"
        android:inputType="textPassword" />

    <Button
        android:id="@+id/button_login"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView_password"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/textView_password"
        android:layout_marginTop="18dp"
        android:background="@drawable/button"
        android:text="登录"
        android:textSize="25sp" />

    <Button
        android:id="@+id/button_forgetpassword"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button_login"
        android:layout_below="@+id/button_login"
        android:background="@android:color/transparent"
        android:text="忘记密码?"
        android:textColor="@color/gray"/>

    <Button
        android:id="@+id/button_register"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/button_login"
        android:layout_alignTop="@+id/button_forgetpassword"
        android:background="@android:color/transparent"
        android:text="注册账号"
        android:textColor="@color/gray"/>

    <TextView
        android:id="@+id/textView_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView_user"
        android:layout_alignParentTop="true"
        android:layout_alignRight="@+id/editText_user"
        android:layout_marginTop="60dp"
        android:gravity="center"
        android:text="星座匹配"
        android:textSize="50sp"
        android:typeface="monospace"
        android:textColor="@color/pink"/>


</RelativeLayout>

MainActivity.java
public class MainActivity extends Activity {

    EditText user;
    EditText passwd;
    Button   login;
    Button   forget_password;
    Button   register;
    DBService dbService;
    String p_name,p_password;
    SharedPreferences mySP;
    SharedPreferences.Editor editor;
    String   TABLE_NAME="mytable";

    private MediaPlayer mediaPlayer;

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

        user=(EditText) findViewById(R.id.editText_user);
        passwd=(EditText) findViewById(R.id.editText_password);
        login=(Button) findViewById(R.id.button_login);
        forget_password=(Button) findViewById(R.id.button_forgetpassword);
        register=(Button) findViewById(R.id.button_register);
        dbService=new DBService(this);

        mySP=getSharedPreferences(TABLE_NAME, Activity.MODE_PRIVATE);
         editor=mySP.edit();
         user.setText(mySP.getString("user",""));
         passwd.setText(mySP.getString("password", ""));


        login.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                editor.putString("user",user.getText().toString());
                editor.putString("password",passwd.getText().toString());
                editor.commit();
                p_name=user.getText().toString();
                p_password=passwd.getText().toString();
                Cursor cursor=dbService.query_byuser(p_name);
                int flag1=0,flag2=0;
                while(cursor.moveToNext())
                {
                    String name=cursor.getString(cursor.getColumnIndex("user"));
                    if(name.equals(p_name))
                    {
                        flag1=1;
                        String password=cursor.getString(cursor.getColumnIndex("password"));
                        if(p_password.equals(password))
                        {
                            flag2=1;
                            Intent intent =new Intent();
                            intent.setClass(MainActivity.this,Star.class);
                            startActivity(intent);
                            //mediaPlayer= MediaPlayer.create(MainActivity.this,R.raw.testsong);
                            //mediaPlayer.start();
                            mediaPlayer = MediaPlayer.create(MainActivity.this,R.raw.xinzuo);
                            mediaPlayer.start();
                        }
                        else
                        {
                            flag2=0;
                        }
                    }
                    else
                    {
                        flag1=0;
                    }
                }
                if(flag1==0)
                {
                    Toast.makeText(getApplicationContext(), "没有此用户名!",Toast.LENGTH_SHORT).show();
                }
                else if(flag2==0)
                {
                    Toast.makeText(getApplicationContext(), "密码不正确!",Toast.LENGTH_SHORT).show();
                }

            }
        });

        forget_password.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent=new Intent();
                intent.setClass(MainActivity.this, FindPasswd.class);
                startActivity(intent);
            }
        });

        register.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent=new Intent();
                intent.setClass(MainActivity.this, Register.class);
                startActivity(intent);
            }
        });


    }
}

真机模拟结果

3.2 各功能模块

(1)使用 SQLite 数据库来创建数据库、创建数据表。实现对数据表的查找、增加。

DBHelper.java
public class DBHelper extends SQLiteOpenHelper{
    private final static String DATABASE_NAME="table.db";
    private final static int DATABASE_VERSION=1;

    public DBHelper(Context context, String name, CursorFactory factory, int version) {
        super(context, DATABASE_NAME, factory, DATABASE_VERSION);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "CREATE TABLE people("
                    +"id INTEGER PRIMARY KEY AUTOINCREMENT, "
                    +"user VARCHAR(20),"
                    +"password VARCHAR(20),"
                    +"email VARCHAR(20))" ;
        db.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub

    }

}
DBService.java
public class DBService {
    private DBHelper helper;
    public DBService(Context context) {
        this.helper=new DBHelper(context, "table.db", null, 1);
    }
     //增
    public void insert(String user,String password,String email){
        String sql = "INSERT INTO people(user,password,email)" +
                "VALUES('"+user+"','"+password+"','"+email+"')";
        SQLiteDatabase db=helper.getWritableDatabase();
        db.execSQL(sql);
    }
     //删
    public void delete(String user){
        String sql="delete from people where user='"+user+"'";
        SQLiteDatabase db=helper.getWritableDatabase();
        db.execSQL(sql);
    }
     //通过用户名查找
    public Cursor query_byuser(String user){
        SQLiteDatabase db=helper.getReadableDatabase();
        String sql="select * from people where user=?";
        Cursor cursor=db.rawQuery(sql, new String[]{user});
        return cursor;
    }
     //通过邮箱查找
    public Cursor query_byemail(String email){
        SQLiteDatabase db=helper.getReadableDatabase();
        String sql="select * from people where email=?";
        Cursor cursor=db.rawQuery(sql, new String[]{email});
        return cursor;
    }

}

(2)注册账号
此功能用于用户账号的注册。布局中使用了 TextView、EditView、Button 控件。
用户需要依次在 EditView 控件中填写用户名、密码、确认密码、邮箱以及验证码。
点击“注册”按钮后,程序会依次进行如下检测:用户名是否为空、密码与确认密码填写是否一致、验证码是否填写正确。如果不正确,系统将通过 Toast 提示。
信息填写正确后,通过 SQLite 数据库,将会将此用户加入 table.db 数据库的 people 表中。
主要代码:

//1.布局文件参考附件的activity_register.xml

//2.利用随机函数产生验证码,利用setText方法使“获取”按钮上的文字变为验证码
public void onClick(View v) {
    // TODO Auto-generated method stub
num=String.valueOf((int)(Math.random()*10000));
    send_identifying_code.setText(num);
}

//3.点击“注册”后,依次检测:用户名是否为空、密码与确认密码是否一致、验证码是否正确。
//检测用户名是否为空
if((user.getText().toString().equals("")))
{
    Toast.makeText(getApplicationContext(), "未填入用户名!",Toast.LENGTH_SHORT).show();
}
//确认两次密码是否一致
if(!(confirm_password.getText().toString().equals(password.getText().toString())))
{
    Toast.makeText(getApplicationContext(), "两次密码不一样!",Toast.LENGTH_SHORT).show();
}
else if(email.getText().toString().equals(""))
{
    Toast.makeText(getApplicationContext(), "邮箱为空!",Toast.LENGTH_SHORT).show();
}
//核实验证码是否正确
else if(!(identifying_code.getText().toString().equals(num)))
{
    Toast.makeText(getApplicationContext(), "验证码不正确!",Toast.LENGTH_SHORT).show();
}

//4.将用户加入table.db数据库的people表中,并且显示注册成功。使用Timer类使得注册界面3秒后返回登录界面
else
{
    p_user=user.getText().toString();
    p_password=password.getText().toString();
p_email=email.getText().toString();
    dbService.insert(p_user, p_password, p_email);
    Toast.makeText(getApplicationContext(), "注册成功!正在跳转回登录界面。。。",Toast.LENGTH_SHORT).show();
    final Intent intent=new Intent();
    intent.setClass(Register.this, MainActivity.class);
    Timer timer=new Timer();
    TimerTask task=new TimerTask(){
        public void run()
        {
            startActivity(intent);
        }
    };
    timer.schedule(task, 1000*3);
}

真机模拟结果

(3)密码找回
密码找回功能使用户可以通过邮箱来找回密码。在布局文件里使用了 TextView 控件显示“邮箱”,EditView 控件用于用户输入邮箱,Button 按钮用于“找回密码”。
当用户输入自己的邮箱后,点击按钮“找回密码”,程序会去数据库中查找此邮箱。如果没有找到此邮箱,将会提示“此邮箱不存在”。如果找到了此邮箱,将会显示此用户的用户名和密码。
主要代码:

//1.布局文件参考附件activity_find_password.xml文件
//2.在数据库里查找此邮箱
find.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        String myemail=email.getText().toString();
        Cursor cursor=dbService.query_byemail(myemail);
        int flag=0;
        while(cursor.moveToNext())
        {
            String p_email=cursor.getString(cursor.getColumnIndex("email"));
            if(p_email.equals(myemail))
            {
                flag=1;
                String s1="查找成功!"+"\n"+"用户名:"+cursor.getString(cursor.getColumnIndex("user"));
                String s2=s1+"\n"+"密码:"+cursor.getString(cursor.getColumnIndex("password"));
                text.setText(s2);
             }
            else
            {
                  flag=0;
            }
        }
        if(flag==0)
        {
            text.setText("未找到此邮箱!");
        }
    }
});

真机模拟结果

(4)根据生日来查找星座。
此功能可以在用户分别输入自己的生日和对方的生日后,找到对应的星座。在布局文件里,使用 TextView 控件分别显示年、月、日。使用 EditView 控件用于用户输入生日的年、月、日。三个个 Button 控件分别为:“开始匹配”、“返回”、“不知道生日?”。
当用户点击“开始匹配”按钮后,系统会首先检测填入的年月日是否合法,例如,月份是否是 1 月-12 月之间的月份。以及检测是否有 EditView 控件中未填入数据。如果填入的数据不合法,将会通过 Toast 来通知用户。如果数据合法,将会使用 Intent 跳转到星座匹配度的界面显示双方的星座匹配度。并且通过 Intent 来传值到 Result 这个 Activity。
当用户点击“返回”按钮时,将会使用 Intent 跳转到登录界面。
考虑到用户可能不知道对方的生日,因此加入了“不知道生日?”按钮。点击此按钮后,系统将使用 Intent 跳转到通过星座直接匹配的界面。
主要代码:

//1.布局文件参考附件activity_star.xml文件
//2.点击“开始匹配”按钮后,检测数据是否合法,若合法将跳转到Result(Activity)并且传值。
int [] a={120,219,321,420,521,622,723,823,923,1024,1123,1222};
int [] b={218,320,419,520,621,722,822,922,1023,1122,1221,119};
String [] s={"水瓶座","双鱼座","白羊座","金牛座","双子座","巨蟹座","狮子座","处女座","天秤座","天蝎座","射手座","摩羯座"};
star.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
        if(year1.getText().toString().equals("")||year2.getText().toString().equals("")
            ||month1.getText().toString().equals("")||month2.getText().toString().equals("")
            ||day1.getText().toString().equals("")||day2.getText().toString().equals(""))
        {
            Toast.makeText(getApplicationContext(), "信息不完整!",Toast.LENGTH_SHORT).show();
        }
        else
        {
            s1=month1.getText().toString()+day1.getText().toString();
            s2=month2.getText().toString()+day2.getText().toString();
            s3=findstar(Integer.parseInt(s1));
            s4=findstar(Integer.parseInt(s2));
            Intent intent=new Intent();
            intent.putExtra("one",s3);
            intent.putExtra("two",s4);
            intent.setClass(Star.this, Result.class);
            startActivity(intent);
        }
    }
});


//此方法可以通过输入的年月日找到对应的星座
public String findstar(int n)
{
    for(int i=0;i<12;i++)
    {
        if(n>=a[i]&&n<=b[i])
         {
            return s[i];
        }
        if(n>=a[11])
        {
            return s[11];
        }
        if(n<=b[11])
        {
            return s[11];
        }
    }
    return null;
}

//3.点击“返回”按钮时,使用Intent跳转到登录界面。
back.setOnClickListener(new View.OnClickListener() {
    @Override
public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent intent=new Intent();
        intent.setClass(Star.this, MainActivity.class);
        startActivity(intent);
    }
});

//4.点击“不知道生日?”按钮后,跳转到通过星座直接匹配的界面
star2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent intent=new Intent();
        intent.setClass(Star.this,Star2.class);
        startActivity(intent);
    }
});

真机模拟结果


(5)直接根据星座进行匹配。
此功能可以使用户直接选择星座来进行星座匹配。布局界面使用了 TextView 控件、Spinner 控件和 Button 控件。Spinner 控件用于选择双方的星座。两个 Button 控件分别为:
“开始匹配”、“返回”。
当用户点击“开始匹配”时,系统将使用 Intent 跳转到 Result 这个 Activity。并且使用 Intent 将双方的星座传值到 Result 中。
当用户点击“返回”时,系统将通过 Intent 返回根据生日来匹配星座的界面。
主要代码:

//1.布局文件参考附件activity_star2.xml文件
//2.使用ArrayAdapter为spinner控件添加数据
String []str={"白羊座","金牛座","双子座","巨蟹座","狮子座","处女座","天秤座","射手座","摩羯座","水瓶座","双鱼座"};
ArrayAdapter<String> adapter1=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, str);
spinner1.setAdapter(adapter1);
spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    // TODO Auto-generated method stub
    s1=parent.getItemAtPosition(position).toString();
    }
@Override
    public void onNothingSelected(AdapterView<?> parent) {
        // TODO Auto-generated method stub
    }

});
ArrayAdapter<String> adapter2=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, str);
spinner2.setAdapter(adapter2);
spinner2.setOnItemSelectedListener(new OnItemSelectedListener() {

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    // TODO Auto-generated method stub
s2=parent.getItemAtPosition(position).toString();
    }
@Override
    public void onNothingSelected(AdapterView<?> parent) {
        // TODO Auto-generated method stub
    }
});

3.//点击“开始匹配”,页面跳转并且传值到Result(Activity)
bt1.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
         // TODO Auto-generated method stub
        Intent intent=new Intent();
        intent.putExtra("one",s1);
        intent.putExtra("two",s2);
        intent.setClass(Star2.this,Result.class);
        startActivity(intent);
    }
});
bt2.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent intent=new Intent();
        intent.setClass(Star2.this, Star.class);
        startActivity(intent);
    }
});

真机模拟结果

(6)星座匹配。
此功能用于显示星座匹配的结果。
根据 Intent 来传值,得到双方的星座。通过查找输出双方之间的星座匹配度
主要代码:

//1.布局文件参考附件activity_result.xml文件
//2.Intent获取传过来的值
Intent intent=getIntent();
s1=intent.getStringExtra("one");
s2=intent.getStringExtra("two");
myConstellation.setText(s1);
hisContellation.setText(s2);

//3.界面显示结果
for(int i=0;i<72;i++)
{
    if((s1.equals(data[i].myConstellation)&&s2.equals(data[i].hisConstellation))
        ||(s1.equals(data[i].hisConstellation)&&s2.equals(data[i].myConstellation)))
    {
        theAnswer.setText(data[i].details);break;
    }
}

真机模拟结果


4 总结

本次安卓课程学习已经结束。在这次学习中,我们学会了使用 Android 控件来进行页面布局,使用 java 代码来对 Button 按钮的点击事件进行监听,使用 Intent 来启动组件、页面跳转和传递对象,使用 Boardcast 来进行广播,用 MediaPlayer 来播放音乐,用 Service 来后台播放音乐,使用 SharePrefence 和 SQLite 数据库进行数据储存……让我们感觉到无比的充实。并且知道了应用程序究竟是怎么被开发出来的。
这次大作业我们做的是星座匹配度。在开发过程中,我们基本上用到了所有学过的知识。这些知识帮助我们更加顺利的完成了此软件的开发。但是在开发的过程中,也遇到了很多困难。例如,程序失去响应,页面跳转不成功,注册用户时没有将新用户的数据插入数据库等等。于是我们借助互联网工具,参考网上成功的案例,在其中寻找错误产生的原因。经过不懈的努力,终于将一个个问题逐个击破。当各个功能逐个实现时,我们发自内心的开心,让我们知道了学习的意义,获得了学习知识带来的成就感。也让我明白了做一件事不可能是一帆风顺的,没有困难就没有进步,勇敢和坚持将会带领我们走向成功的驿站。简单的把每一步做好,就能铸就未来巨大的成功。
在这次大作业中,也让我懂得了合作的重要性。我们一起完成一个应用,起初,无边的范围让我们这群菜鸟无从下嘴。经过我们的商讨,最终确立了实现的页面要求。之后我们制定了合理的开发计划,一小步一小步的走,一行一行慢慢的写代码。当遇到问题时,我们一起寻找产生的原因以及解决的方法。看着一个个小小功能的实现与完善,我们都很欣慰。在那一行行代码间,流露出来的不只是大家对它付出的汗水,还有那份执着的心。
相信队友,这也是我们在此次大作业中的一点感悟。这个应用程序是需要团队合作来共同完成的。我们不能一个人什么都做完,这样另一个人体会不到团队价值,这不利于应用开发工作的成功完成。我们要让每个人都有事做,并且要做好。
此次大作业的成功完成,也让我们对学习计算机有了更大的信心。在以后的工作和学习过程中,我们会用更加积极的态度去对待每一件事情,用心去完成每一件事情。做一个迎难而上的人,不断完善自己,突破自己。

附件

activity_main.xml

activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:background="@drawable/background"
    tools:context="com.example.homework.MainActivity" >

    <TextView
        android:id="@+id/textView_user"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="180dp"
        android:text="用户名:"
        android:textSize="25sp"/>

     <TextView
        android:id="@+id/textView_password"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView_user"
        android:layout_alignTop="@+id/textView_user"
        android:layout_marginTop="35dp"
        android:text="密码:"
        android:textSize="25sp" />

    <EditText
        android:id="@+id/editText_user"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView_user"
        android:layout_alignParentRight="true"
        android:hint="请输入用户名"
        android:ems="10" />

    <EditText
        android:id="@+id/editText_password"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView_password"
        android:layout_alignParentRight="true"
        android:layout_alignLeft="@+id/editText_user"
        android:ems="10"
        android:hint="请输入密码"
        android:inputType="textPassword" />

    <Button
        android:id="@+id/button_login"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView_password"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/textView_password"
        android:layout_marginTop="18dp"
        android:background="@drawable/button"
        android:text="登录"
        android:textSize="25sp" />

    <Button
        android:id="@+id/button_forgetpassword"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button_login"
        android:layout_below="@+id/button_login"
        android:background="@android:color/transparent"
        android:text="忘记密码?"
        android:textColor="@color/gray"/>

    <Button
        android:id="@+id/button_register"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/button_login"
        android:layout_alignTop="@+id/button_forgetpassword"
        android:background="@android:color/transparent"
        android:text="注册账号"
        android:textColor="@color/gray"/>

    <TextView
        android:id="@+id/textView_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView_user"
        android:layout_alignParentTop="true"
        android:layout_alignRight="@+id/editText_user"
        android:layout_marginTop="60dp"
        android:gravity="center"
        android:text="星座匹配"
        android:textSize="50sp"
        android:typeface="monospace"
        android:textColor="@color/pink"/>


</RelativeLayout>

MainActivity.java

MainActivity.java
package com.example.homework;

import com.example.homework.R.color;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.graphics.Color;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

    EditText user;
    EditText passwd;
    Button   login;
    Button   forget_password;
    Button   register;
    DBService dbService;
    String p_name,p_password;
    SharedPreferences mySP;
    SharedPreferences.Editor editor;
    String   TABLE_NAME="mytable";

    private MediaPlayer mediaPlayer;

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

        user=(EditText) findViewById(R.id.editText_user);
        passwd=(EditText) findViewById(R.id.editText_password);
        login=(Button) findViewById(R.id.button_login);
        forget_password=(Button) findViewById(R.id.button_forgetpassword);
        register=(Button) findViewById(R.id.button_register);
        dbService=new DBService(this);

        mySP=getSharedPreferences(TABLE_NAME, Activity.MODE_PRIVATE);
        editor=mySP.edit();
        user.setText(mySP.getString("user",""));
        passwd.setText(mySP.getString("password", ""));


        login.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                editor.putString("user",user.getText().toString());
                editor.putString("password",passwd.getText().toString());
                editor.commit();
                p_name=user.getText().toString();
                p_password=passwd.getText().toString();
                Cursor cursor=dbService.query_byuser(p_name);
                int flag1=0,flag2=0;
                while(cursor.moveToNext())
                {
                    String name=cursor.getString(cursor.getColumnIndex("user"));
                    if(name.equals(p_name))
                    {
                        flag1=1;
                        String password=cursor.getString(cursor.getColumnIndex("password"));
                        if(p_password.equals(password))
                        {
                            flag2=1;
                            Intent intent =new Intent();
                            intent.setClass(MainActivity.this,Star.class);
                            startActivity(intent);
                            //mediaPlayer= MediaPlayer.create(MainActivity.this,R.raw.testsong);
                            //mediaPlayer.start();
                            //mediaPlayer = MediaPlayer.create(MainActivity.this,R.raw.xinzuo);
                            //mediaPlayer.start();
                        }
                        else
                        {
                            flag2=0;
                        }
                    }
                    else
                    {
                        flag1=0;
                    }
                }
                if(flag1==0)
                {
                    Toast.makeText(getApplicationContext(), "没有此用户名!",Toast.LENGTH_SHORT).show();
                }
                else if(flag2==0)
                {
                    Toast.makeText(getApplicationContext(), "密码不正确!",Toast.LENGTH_SHORT).show();
                }

            }
        });

        forget_password.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent=new Intent();
                intent.setClass(MainActivity.this, FindPasswd.class);
                startActivity(intent);
            }
        });

        register.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent=new Intent();
                intent.setClass(MainActivity.this, Register.class);
                startActivity(intent);
            }
        });


    }
}

DBHelper.java

//SQLite数据库
DBHelper.java
package com.example.homework;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.widget.Toast;
import android.database.sqlite.SQLiteOpenHelper;

public class DBHelper extends SQLiteOpenHelper{
    private final static String DATABASE_NAME="table.db";
    private final static int DATABASE_VERSION=1;

    public DBHelper(Context context, String name, CursorFactory factory, int version) {
        super(context, DATABASE_NAME, factory, DATABASE_VERSION);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "CREATE TABLE people("
                    +"id INTEGER PRIMARY KEY AUTOINCREMENT, "
                    +"user VARCHAR(20),"
                    +"password VARCHAR(20),"
                    +"email VARCHAR(20))" ;
        db.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub

    }

}

DBService.java

DBService.java
package com.example.homework;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.widget.Toast;

public class DBService {
    private DBHelper helper;
    public DBService(Context context) {
        this.helper=new DBHelper(context, "table.db", null, 1);
    }
    public void insert(String user,String password,String email){
        String sql = "INSERT INTO people(user,password,email)" +
                "VALUES('"+user+"','"+password+"','"+email+"')";
        SQLiteDatabase db=helper.getWritableDatabase();
        db.execSQL(sql);
    }
    public void delete(String user){
        String sql="delete from people where user='"+user+"'";
        SQLiteDatabase db=helper.getWritableDatabase();
        db.execSQL(sql);
    }
    public Cursor query_byuser(String user){
        SQLiteDatabase db=helper.getReadableDatabase();
        String sql="select * from people where user=?";
        Cursor cursor=db.rawQuery(sql, new String[]{user});
        return cursor;
    }
    public Cursor query_byemail(String email){
        SQLiteDatabase db=helper.getReadableDatabase();
        String sql="select * from people where email=?";
        Cursor cursor=db.rawQuery(sql, new String[]{email});
        return cursor;
    }

}

activity_register.xml

//注册账号,点击“注册账号”按钮实现用户注册。
activity_register.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:background="@drawable/background"
    tools:context="com.example.homework.Register" >

    <TextView
        android:id="@+id/register_user"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="100dp"
        android:text="用户名:"
        android:textSize="25sp"/>


    <TextView
        android:id="@+id/register_password"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/register_user"
        android:layout_below="@+id/register_user"
        android:layout_marginTop="15dp"
        android:text="密码:"
        android:textSize="25sp"/>


    <TextView
        android:id="@+id/register_confirm"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/register_password"
        android:layout_marginTop="15dp"
        android:layout_alignLeft="@+id/register_user"
        android:text="确认密码:"
        android:textSize="25sp"/>

    <TextView
        android:id="@+id/register_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="15dp"
        android:text="星座匹配"
        android:textSize="50sp"
        android:textColor="@color/pink"/>

    <EditText
        android:id="@+id/editText_register_user"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/register_password"
        android:layout_toRightOf="@+id/register_confirm"
        android:hint="请输入用户名"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText_register_password"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/register_password"
        android:layout_alignLeft="@+id/editText_register_user"
        android:ems="10"
        android:inputType="textPassword"
        android:hint="请输入密码"/>

    <EditText
        android:id="@+id/editText_confirm_password"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/register_confirm"
        android:layout_alignLeft="@+id/editText_register_password"
        android:ems="10"
        android:inputType="textPassword"
        android:hint="请再次输入密码"/>

    <TextView
        android:id="@+id/register_email"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/register_confirm"
        android:layout_below="@+id/register_confirm"
        android:layout_marginTop="15dp"
        android:text="邮箱:"
        android:textSize="25sp"/>

    <EditText
        android:id="@+id/editText_register_email"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/register_email"
        android:layout_alignLeft="@+id/editText_confirm_password"
        android:ems="10"
        android:inputType="textEmailAddress"
        android:hint="请输入邮箱"/>

    <TextView
        android:id="@+id/text_findpassword"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText_register_email"
        android:layout_alignRight="@+id/editText_register_email"
        android:layout_below="@+id/editText_register_email"
        android:text="*此邮箱将用于密码找回"
        android:textColor="@color/gray"
        android:gravity="right"/>

    <TextView
        android:id="@+id/register_identifying_code"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/register_email"
        android:layout_below="@+id/text_findpassword"
        android:layout_marginTop="35dp"
        android:text="验证码:"
        android:textSize="25sp"/>

    <EditText
        android:id="@+id/editText_register_identifying_code"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/register_identifying_code"
        android:layout_alignRight="@+id/register_title"
        android:layout_toRightOf="@+id/register_confirm"
        android:ems="10" />

    <Button
        android:id="@+id/button_register_send_identifying_code"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/editText_register_identifying_code"
        android:layout_alignRight="@+id/text_findpassword"
        android:layout_alignTop="@+id/register_identifying_code"
        android:background="@drawable/button"
        android:text="获取" />

    <Button
        android:id="@+id/button_register"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/register_identifying_code"
        android:layout_below="@+id/register_identifying_code"
        android:layout_marginTop="20dp"
        android:text="注册"
        android:textSize="35sp"
        android:background="@drawable/button"/>

</RelativeLayout>

Register.java

Register.java
package com.example.homework;

import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Register extends Activity {

    EditText user;
    EditText password;
    EditText confirm_password;
    EditText email;
    EditText identifying_code;
    Button   send_identifying_code;
    Button   register;
    private String num;
    String  p_user,p_password,p_email;
    DBService dbService;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        user=(EditText) findViewById(R.id.editText_register_user);
        password=(EditText) findViewById(R.id.editText_register_password);
        confirm_password=(EditText) findViewById(R.id.editText_confirm_password);
        email=(EditText) findViewById(R.id.editText_register_email);
        identifying_code=(EditText) findViewById(R.id.editText_register_identifying_code);
        send_identifying_code=(Button) findViewById(R.id.button_register_send_identifying_code);
        register=(Button) findViewById(R.id.button_register);
        dbService=new DBService(this);
        send_identifying_code.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                num=String.valueOf((int)(Math.random()*10000));
                send_identifying_code.setText(num);
            }
        });
        register.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                if((user.getText().toString().equals("")))
                {
                    Toast.makeText(getApplicationContext(), "未填入用户名!",Toast.LENGTH_SHORT).show();
                }
                //确认两次密码是否一致
                if(!(confirm_password.getText().toString().equals(password.getText().toString())))
                {
                    Toast.makeText(getApplicationContext(), "两次密码不一样!",Toast.LENGTH_SHORT).show();
                }
                else if(email.getText().toString().equals(""))
                {
                    Toast.makeText(getApplicationContext(), "邮箱为空!",Toast.LENGTH_SHORT).show();
                }
                //核实验证码是否正确
                else if(!(identifying_code.getText().toString().equals(num)))
                {
                    Toast.makeText(getApplicationContext(), "验证码不正确!",Toast.LENGTH_SHORT).show();
                }
                else
                {
                    p_user=user.getText().toString();
                    p_password=password.getText().toString();
                    p_email=email.getText().toString();
                    dbService.insert(p_user, p_password, p_email);
                    Toast.makeText(getApplicationContext(), "注册成功!正在跳转回登录界面。。。",Toast.LENGTH_SHORT).show();
                    final Intent intent=new Intent();
                    intent.setClass(Register.this, MainActivity.class);
                    Timer timer=new Timer();
                    TimerTask task=new TimerTask(){
                        public void run()
                        {
                            startActivity(intent);
                        }
                    };
                    timer.schedule(task, 1000*3);
                }
            }
        });
    }

}

activity_find_password.xml

//密码找回
activity_find_password.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.homework.FindPassword"
    android:background="@drawable/background">

    <TextView
        android:id="@+id/find_password_email"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginTop="10dp"
        android:text="邮箱:"
        android:textSize="25sp"/>

    <EditText
        android:id="@+id/editText_find_email"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/find_password_email"
        android:layout_alignBottom="@+id/find_password_email"
        android:layout_alignParentRight="true"
        android:ems="10"
        android:hint="请输入邮箱">
    </EditText>

    <Button
        android:id="@+id/find_database"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/find_password_email"
        android:layout_below="@+id/find_password_email"
        android:layout_marginTop="16dp"
        android:background="@drawable/button"
        android:text="找回密码" />

    <TextView
        android:id="@+id/show_answer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/find_database"
        android:layout_below="@+id/find_database"
        android:layout_marginTop="64dp"
        android:text=""
        android:textSize="30sp"/>

</RelativeLayout>

FindPassword.java

FindPassword.java
package com.example.homework;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class FindPasswd extends Activity {

    EditText email;
    Button   find;
    TextView text;
    DBService dbService;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_find_passwd);
        email=(EditText) findViewById(R.id.editText_find_email);
        find=(Button) findViewById(R.id.find_database);
        text=(TextView) findViewById(R.id.show_answer);
        dbService=new DBService(this);

        find.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String myemail=email.getText().toString();
                Cursor cursor=dbService.query_byemail(myemail);
                int flag=0;
                while(cursor.moveToNext())
                {
                    String p_email=cursor.getString(cursor.getColumnIndex("email"));
                    if(p_email.equals(myemail))
                    {
                        flag=1;
                        String s1="查找成功!"+"\n"+"用户名:"+cursor.getString(cursor.getColumnIndex("user"));
                        String s2=s1+"\n"+"密码:"+cursor.getString(cursor.getColumnIndex("password"));
                        text.setText(s2);
                    }
                    else
                    {
                        flag=0;
                    }
                }
                if(flag==0)
                {
                    text.setText("未找到此邮箱!");
                }
            }
        });
    }
}

activity_star.xml

//根据生日进行星座匹配
activity_star.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background"
    android:gravity="right"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.homework.Star" >

    <Button
        android:id="@+id/button_match_bystar"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:background="@android:color/transparent"
        android:text="不知道生日?"
        android:textColor="@color/purple"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/textView_according_star"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button_match_bystar"
        android:layout_below="@+id/button_match_bystar"
        android:gravity="right"
        android:text="*根据星座匹配"
        android:textColor="@color/gray"/>

    <TextView
        android:id="@+id/textView_mybirthday"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView_according_star"
        android:layout_marginLeft="38dp"
        android:layout_marginTop="64dp"
        android:text="你的生日:"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/textView_year1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView_mybirthday"
        android:layout_below="@+id/textView_mybirthday"
        android:layout_marginTop="20dp"
        android:text="年:"
        android:textSize="20sp"/>

    <EditText
        android:id="@+id/editText_year1"
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView_year1"
        android:layout_toRightOf="@+id/textView_year1"
        android:ems="10"
        android:background="@color/white"/>

    <TextView
        android:id="@+id/textView_month1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText_year1"
        android:layout_alignBottom="@+id/editText_year1"
        android:layout_toRightOf="@+id/editText_year1"
        android:text="月:"
        android:textSize="20sp"/>

    <EditText
        android:id="@+id/editText_month1"
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/editText_year1"
        android:layout_toRightOf="@+id/textView_month1"
        android:ems="10"
        android:background="@color/white">

    </EditText>

    <TextView
        android:id="@+id/textView_day1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView_month1"
        android:layout_toRightOf="@+id/editText_month1"
        android:text="日:"
        android:textSize="20sp"/>

    <EditText
        android:id="@+id/editText_day1"
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView_day1"
        android:layout_toRightOf="@+id/textView_day1"
        android:ems="10"
        android:background="@color/white"/>

    <TextView
        android:id="@+id/textView_hisbirthsay"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView_year1"
        android:layout_below="@+id/textView_month1"
        android:layout_marginTop="23dp"
        android:text="他(她)的生日:"
        android:textSize="20sp"/>

    <TextView
        android:id="@+id/textView_year2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView_hisbirthsay"
        android:layout_marginTop="22dp"
        android:layout_toLeftOf="@+id/editText_year1"
        android:text="年:"
        android:textSize="20sp" />

    <EditText
        android:id="@+id/editText_year2"
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView_year2"
        android:layout_toRightOf="@+id/textView_year2"
        android:ems="10"
        android:background="@color/white"/>

    <TextView
        android:id="@+id/textView_month2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText_year2"
        android:layout_alignBottom="@+id/editText_year2"
        android:layout_toRightOf="@+id/editText_year2"
        android:text="月:"
        android:textSize="20sp"/>

    <EditText
        android:id="@+id/editText_month2"
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/editText_year2"
        android:layout_toRightOf="@+id/textView_month2"
        android:ems="10"
        android:background="@color/white">

    </EditText>

    <TextView
        android:id="@+id/textView_day2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView_month2"
        android:layout_toRightOf="@+id/editText_month2"
        android:text="日:"
        android:textSize="20sp"/>

    <EditText
        android:id="@+id/editText_day2"
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView_day2"
        android:layout_toRightOf="@+id/textView_day2"
        android:ems="10"
        android:background="@color/white"/>

    <Button
        android:id="@+id/button_star"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView_year2"
        android:layout_below="@+id/textView_month2"
        android:layout_marginTop="28dp"
        android:text="开始匹配"
        android:background="@drawable/button"/>

    <Button
        android:id="@+id/button_back"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/button_star"
        android:layout_alignRight="@+id/editText_day2"
        android:text="返回"
        android:background="@drawable/button"/>

</RelativeLayout>

Star.java

Star.java
package com.example.homework;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Star extends Activity {

    Button star2;
    Button star;
    Button back;
    EditText month1;
    EditText month2;
    EditText day1;
    EditText day2;
    EditText year1;
    EditText year2;
    String s1,s2,s3,s4;
    int [] a={120,219,321,420,521,622,723,823,923,1024,1123,1222};
    int [] b={218,320,419,520,621,722,822,922,1023,1122,1221,119};
    String [] s={"水瓶座","双鱼座","白羊座","金牛座","双子座","巨蟹座","狮子座","处女座","天秤座","天蝎座","射手座","摩羯座"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_star);

        star2=(Button) findViewById(R.id.button_match_bystar);
        star=(Button) findViewById(R.id.button_star);
        back=(Button) findViewById(R.id.button_back);
        month1=(EditText) findViewById(R.id.editText_month1);
        month2=(EditText) findViewById(R.id.editText_month2);
        day1=(EditText) findViewById(R.id.editText_day1);
        day2=(EditText) findViewById(R.id.editText_day2);
        year1=(EditText) findViewById(R.id.editText_year1);
        year2=(EditText) findViewById(R.id.editText_year2);

        star2.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent=new Intent();
                intent.setClass(Star.this,Star2.class);
                startActivity(intent);
            }
        });

        star.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                // TODO Auto-generated method stub
                if(year1.getText().toString().equals("")||year2.getText().toString().equals("")
                        ||month1.getText().toString().equals("")||month2.getText().toString().equals("")
                        ||day1.getText().toString().equals("")||day2.getText().toString().equals(""))
                {
                    Toast.makeText(getApplicationContext(), "信息不完整!",Toast.LENGTH_SHORT).show();
                }
                else
                {
                    s1=month1.getText().toString()+day1.getText().toString();
                    s2=month2.getText().toString()+day2.getText().toString();
                    s3=findstar(Integer.parseInt(s1));
                    s4=findstar(Integer.parseInt(s2));
                    Intent intent=new Intent();
                    intent.putExtra("one",s3);
                    intent.putExtra("two",s4);
                    intent.setClass(Star.this, Result.class);
                    startActivity(intent);
                }

            }
        });

        back.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent=new Intent();
                intent.setClass(Star.this, MainActivity.class);
                startActivity(intent);
            }
        });
    }
    public String findstar(int n)
    {
        for(int i=0;i<12;i++)
        {
            if(n>=a[i]&&n<=b[i])
            {
                return s[i];
            }
            if(n>=a[11])
            {
                return s[11];
            }
            if(n<=b[11])
            {
                return s[11];
            }
        }
        return null;
    }
}

activity_star2.xml

//根据星座直接匹配
activity_star2.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.homework.Star2"
    android:background="@drawable/background">

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="38dp"
        android:layout_marginTop="120dp"
        android:text="请选择你的星座:"
        android:textSize="20sp" />

    <Spinner
        android:id="@+id/list1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView2"
        android:layout_alignLeft="@+id/textView2"
        android:layout_marginTop="5dp" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/list1"
        android:layout_alignLeft="@+id/textView2"
        android:text="请选择你心仪人的星座:"
        android:textSize="20sp"
        android:layout_marginTop="20dp"/>

    <Spinner
        android:id="@+id/list2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:layout_alignLeft="@+id/textView2"
        android:layout_marginTop="5dp"/>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView2"
        android:layout_below="@+id/list2"
        android:layout_marginTop="20dp"
        android:text="开始匹配"
        android:background="@drawable/button"/>

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button1"
        android:layout_alignBottom="@+id/button1"
        android:layout_alignRight="@+id/textView1"
        android:text="返回"
        android:background="@drawable/button"/>

</RelativeLayout>

Star2.java

Star2.java
package com.example.homework;

import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;

public class Star2 extends Activity {

    private Spinner spinner1,spinner2;
    Button bt1,bt2;
    String []str={"白羊座","金牛座","双子座","巨蟹座","狮子座","处女座","天秤座","射手座","摩羯座","水瓶座","双鱼座"};
    String s1,s2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_star2);
        spinner1 = (Spinner) findViewById(R.id.list1);
        spinner2 = (Spinner) findViewById(R.id.list2);
        bt1 = (Button) findViewById(R.id.button1);
        bt2 = (Button) findViewById(R.id.button2);
        ArrayAdapter<String> adapter1=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, str);
        spinner1.setAdapter(adapter1);

        spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                // TODO Auto-generated method stub
                s1=parent.getItemAtPosition(position).toString();
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                // TODO Auto-generated method stub

            }

        });

        ArrayAdapter<String> adapter2=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, str);
        spinner2.setAdapter(adapter2);

        spinner2.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                // TODO Auto-generated method stub
                s2=parent.getItemAtPosition(position).toString();
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                // TODO Auto-generated method stub

            }
        });

        bt1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent=new Intent();
                intent.putExtra("one",s1);
                intent.putExtra("two",s2);
                intent.setClass(Star2.this,Result.class);
                startActivity(intent);
            }
        });
        bt2.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent=new Intent();
                intent.setClass(Star2.this, Star.class);
                startActivity(intent);
            }
        });
    }
}

activity_result.xml

//星座匹配
activity_result.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.homework.Result" >

    <Button
        android:id="@+id/button_myConstellation"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="24dp"
        android:layout_marginTop="97dp"
        android:background="@drawable/button2"
        android:text=""
        android:textSize="28sp" />

    <Button
        android:id="@+id/button_hisConstellation"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button_myConstellation"
        android:layout_alignBottom="@+id/button_myConstellation"
        android:layout_alignParentRight="true"
        android:layout_marginRight="24dp"
        android:background="@drawable/button2"
        android:text=""
        android:textSize="28sp" />

    <TextView
        android:id="@+id/textView_answer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button_myConstellation"
        android:layout_below="@+id/button_myConstellation"
        android:layout_marginTop="83dp"
        android:textSize="25sp" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button_hisConstellation"
        android:layout_alignBottom="@+id/button_hisConstellation"
        android:layout_centerHorizontal="true"
        android:text="VS"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#FF0000"
        android:textSize="25sp" />

    <View
        android:layout_width="wrap_content"
        android:layout_height="3dp"
        android:layout_alignBottom="@+id/button_myConstellation"
        android:layout_marginBottom="25dp"
        android:layout_toLeftOf="@+id/textView1"
        android:layout_toRightOf="@+id/button_myConstellation"
        android:background="#FF0000" />

    <View
        android:id="@+id/view1"
        android:layout_width="wrap_content"
        android:layout_height="3dp"
        android:layout_alignBottom="@+id/button_myConstellation"
        android:layout_marginBottom="25dp"
        android:layout_toLeftOf="@+id/button_hisConstellation"
        android:layout_toRightOf="@+id/textView1"
        android:background="#FF0000" />


</RelativeLayout>

Constellation.java

Constellation.java
package com.example.homework;

public class Constellation {
    String myConstellation;
    String hisConstellation;
    String details;

    public void Constellation()
    {

    }
    public void Set(String myConstellation, String hisConstellation, String details) {
        // TODO Auto-generated method stub
        this.myConstellation=myConstellation;
        this.hisConstellation=hisConstellation;
        this.details=details;
    }
}

Result.java

Result.java
package com.example.homework;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.TextView;

public class Result extends Activity {

    String s1,s2;
    Button myConstellation;
    Button hisContellation;
    TextView theAnswer;
    Constellation [] data=new Constellation[80];
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_result);

        myConstellation=(Button) findViewById(R.id.button_myConstellation);
        hisContellation=(Button) findViewById(R.id.button_hisConstellation);
        theAnswer=(TextView) findViewById(R.id.textView_answer);

        Intent intent=getIntent();
        s1=intent.getStringExtra("one");
        s2=intent.getStringExtra("two");

        myConstellation.setText(s1);
        hisContellation.setText(s2);
        //theAnswer.setText("配对指数:80\n配对比重:50:50\n两情相悦指数:4\n天长地久指数:4");

        for(int i=0;i<80;i++)
        {
            data[i]=new Constellation();
        }

        data[0].Set("白羊座", "白羊座", "配对指数:80\n配对比重:50:50\n两情相悦指数:4\n天长地久指数:4\n结果评述:相当理想的一对");
        data[1].Set("白羊座", "金牛座", "配对指数:70\n配对比重:54.46\n两情相悦指数:4\n天长地久指数:3\n结果评述:还蛮不错的一对");
        data[2].Set("白羊座", "双子座", "配对指数:90\n配对比重:44.50\n两情相悦指数:5\n天长地久指数:4\n结果评述:非常理想的一对");
        data[3].Set("白羊座", "巨蟹座", "配对指数:50\n配对比重:58.42\n两情相悦指数:3\n天长地久指数:2\n结果评述:需要努力维持的一对");
        data[4].Set("白羊座", "狮子座", "配对指数:100\n配对比重:48.52\n两情相悦指数:5\n天长地久指数:5\n结果评述:天生一对");
        data[5].Set("白羊座", "处女座", "配对指数:40\n配对比重:40.60\n两情相悦指数:3\n天长地久指数:1\n结果评述:前途不容乐观的一对");
        data[6].Set("白羊座", "天秤座", "配对指数:60\n配对比重:50:50\n两情相悦指数:4\n天长地久指数:2\n结果评述:相互吸引又互相排斥一对");
        data[7].Set("白羊座", "天蝎座", "配对指数:40\n配对比重:60.40\n两情相悦指数:2\n天长地久指数:2\n结果评述:前途不容乐观的一对");
        data[8].Set("白羊座", "射手座", "配对指数:100\n配对比重:52.48\n两情相悦指数:5\n天长地久指数:5\n结果评述:天生一对");
        data[9].Set("白羊座", "摩羯座", "配对指数:50\n配对比重:42.58\n两情相悦指数:3\n天长地久指数:2\n结果评述:需要努力维持的一对");
        data[10].Set("白羊座", "水瓶座", "配对指数:90\n配对比重:56.44\n两情相悦指数:5\n天长地久指数:4\n结果评述:非常理想的一对");
        data[11].Set("白羊座", "双鱼座", "配对指数:70\n配对比重:46.54\n两情相悦指数:4\n天长地久指数:3\n结果评述:还蛮不错的一对");

        data[12].Set("金牛座", "金牛座", "配对指数:80\n配对比重:50:50\n两情相悦指数:4\n天长地久指数:4\n结果评述:相当理想的一对");
        data[13].Set("金牛座", "双子座", "配对指数:90\n配对比重:44.50\n两情相悦指数:5\n天长地久指数:4\n结果评述:非常理想的一对");
        data[14].Set("金牛座", "巨蟹座", "配对指数:90\n配对比重:44.56\n两情相悦指数:5\n天长地久指数:4\n结果评述:非常理想的一对");
        data[15].Set("金牛座", "狮子座", "配对指数:50\n配对比重:58.42\n两情相悦指数:3\n天长地久指数:2\n结果评述:需要努力维持的一对");
        data[16].Set("金牛座", "处女座", "配对指数:100\n配对比重:48.52\n两情相悦指数:5\n天长地久指数:5\n结果评述:天生的一对");
        data[17].Set("金牛座", "天秤座", "配对指数:40\n配对比重:40.60\n两情相悦指数:3\n天长地久指数:1\n结果评述:前途不容乐观的一对");
        data[18].Set("金牛座", "天蝎座", "配对指数:60\n配对比重:50:50\n两情相悦指数:4\n天长地久指数:2\n结果评述:相互又相互吸引的一对");
        data[19].Set("金牛座", "射手座", "配对指数:40\n配对比重:60.40\n两情相悦指数:2\n天长地久指数:2\n结果评述:前途不容乐观的一对");
        data[20].Set("金牛座", "摩羯座", "配对指数:100\n配对比重:52.48\n两情相悦指数:5\n天长地久指数:5\n结果评述:天生的一对");
        data[21].Set("金牛座", "水瓶座", "配对指数:50\n配对比重:42.58\n两情相悦指数:3\n天长地久指数:2\n结果评述:需要努力维持的一对");
        data[22].Set("金牛座", "双鱼座", "配对指数:80\n配对比重:56.44\n两情相悦指数:4\n天长地久指数:4\n结果评述:非常理想的一对");

        data[23].Set("双子座", "双子座", "配对指数:80\n配对比重:50:50\n两情相悦指数:4\n天长地久指数:4\n结果评述:相当理想的一对");
        data[24].Set("双子座", "巨蟹座", "配对指数:70\n配对比重:54.46\n两情相悦指数:4\n天长地久指数:3\n结果评述:还蛮不错的一对");
        data[25].Set("双子座", "狮子座", "配对指数:90\n配对比重:44.56\n两情相悦指数:5\n天长地久指数:4\n结果评述:非常理想的一对");
        data[26].Set("双子座", "处女座", "配对指数:50\n配对比重:58.42\n两情相悦指数:3\n天长地久指数:2\n结果评述:需要努力的一对");
        data[27].Set("双子座", "天秤座", "配对指数:100\n配对比重:48.52\n两情相悦指数:5\n天长地久指数:5\n结果评述:天生的一对");
        data[28].Set("双子座", "天蝎座", "配对指数:40\n配对比重:40.60\n两情相悦指数:3\n天长地久指数:1\n结果评述:前途不容乐观的一对");
        data[29].Set("双子座", "射手座", "配对指数:60\n配对比重:50:50\n两情相悦指数:4\n天长地久指数:2\n结果评述:互相吸引有互相排斥的一对");
        data[30].Set("双子座", "摩羯座", "配对指数:40\n配对比重:60.40\n两情相悦指数:2\n天长地久指数:2\n结果评述:前途不容乐观的一对");
        data[31].Set("双子座", "水瓶座", "配对指数:100\n配对比重:52.48\n两情相悦指数:5\n天长地久指数:5\n结果评述:天生的一对");
        data[32].Set("双子座", "双鱼座", "配对指数:50\n配对比重:42.58\n两情相悦指数:3\n天长地久指数:2\n结果评述:需要努力维持的一对");

        data[33].Set("巨蟹座", "巨蟹座", "配对指数:80\n配对比重:50.50\n两情相悦指数:4\n天长地久指数:4\n结果评述:相当理想的一对");
        data[34].Set("巨蟹座", "狮子座", "配对指数:70\n配对比重:54.46\n两情相悦指数:4\n天长地久指数:3\n结果评述:还蛮不错的一对");
        data[35].Set("巨蟹座", "处女座", "配对指数:90\n配对比重:44.56\n两情相悦指数:5\n天长地久指数:4\n结果评述:非常理想的一对");
        data[36].Set("巨蟹座", "天秤座", "配对指数:60\n配对比重:50.50\n两情相悦指数:4\n天长地久指数:2\n结果评述:互相吸引又互相排斥的一对");
        data[37].Set("巨蟹座", "天蝎座", "配对指数:100\n配对比重:48.52\n两情相悦指数:5\n天长地久指数:5\n结果评述:天生的一对");
        data[38].Set("巨蟹座", "射手座", "配对指数:40\n配对比重:40.60\n两情相悦指数:3\n天长地久指数:1\n结果评述:前途不容乐观的一对");
        data[39].Set("巨蟹座", "水瓶座", "配对指数:40\n配对比重:60.40\n两情相悦指数:2\n天长地久指数:2\n结果评述:前途不容乐观的一对");
        data[40].Set("巨蟹座", "摩羯座", "配对指数:60\n配对比重:50.50\n两情相悦指数:4\n天长地久指数:2\n结果评述:互相吸引有互相排斥的一对");
        data[41].Set("巨蟹座", "双鱼座", "配对指数:100\n配对比重:52.48\n两情相悦指数:5\n天长地久指数:5\n结果评述:天生的一对");

        data[42].Set("狮子座", "狮子座", "配对指数:80\n配对比重:50:50\n两情相悦指数:4\n天长地久指数:4\n结果评述:相当理想的一对 ");
        data[43].Set("狮子座", "处女座", "配对指数:70\n配对比重:54.46\n两情相悦指数:4\n天长地久指数:3\n结果评述:还蛮不错的一对");
        data[44].Set("狮子座", "天秤座", "配对指数:90\n配对比重:44.56\n两情相悦指数:5\n天长地久指数:4\n结果评述:非常理想的一对");
        data[45].Set("狮子座", "天蝎座", "配对指数:50\n配对比重:58.42\n两情相悦指数:3\n天长地久指数:2\n结果评述:需要努力维持的一对");
        data[46].Set("狮子座", "射手座", "配对指数:100\n配对比重:48.52\n两情相悦指数:5\n天长地久指数:5\n结果评述:天生的一对");
        data[47].Set("狮子座", "摩羯座", "配对指数:40\n配对比重:40.60\n两情相悦指数:3\n天长地久指数:1\n结果评述:前途不容乐观的一对");
        data[48].Set("狮子座", "水瓶座", "配对指数:60\n配对比重:50.50\n两情相悦指数:4\n天长地久指数:2\n结果评述:互相吸引有互相排斥的一对");
        data[49].Set("狮子座", "双鱼座", "配对指数:40\n配对比重:60.40\n两情相悦指数:2\n天长地久指数:2\n结果评述:前途不容乐观的一对");

        data[50].Set("处女座", "处女座", "配对指数:80\n配对比重:50:50\n两情相悦指数:4\n天长地久指数:4\n结果评述:相当理想的一对");
        data[51].Set("处女座", "天秤座", "配对指数:70\n配对比重:54.46\n两情相悦指数:4\n天长地久指数:3\n结果评述:还蛮不错的一对");
        data[52].Set("处女座", "天蝎座", "配对指数:90\n配对比重:44.56\n两情相悦指数:5\n天长地久指数:4\n结果评述:非常理想的一对");
        data[53].Set("处女座", "射手座", "配对指数:50\n配对比重:58.42\n两情相悦指数:3\n天长地久指数:2\n结果评述:需要努力维持的一对");
        data[54].Set("处女座", "摩羯座", "配对指数:100\n配对比重:48.52\n两情相悦指数:5\n天长地久指数:5\n结果评述:天生的一对");
        data[55].Set("处女座", "水瓶座", "配对指数:40\n配对比重:40.60\n两情相悦指数:2\n天长地久指数:1\n结果评述:前途不容乐观的一对");
        data[56].Set("处女座", "双鱼座", "配对指数:60\n配对比重:50.50\n两情相悦指数:4\n天长地久指数:2\n结果评述:互相吸引又互相排斥的一对");

        data[57].Set("天秤座", "天秤座", "配对指数:80\n配对比重:50.50\n两情相悦指数:4\n天长地久指数:2\n结果评述:互相吸引又互相排斥的一对");
        data[58].Set("天秤座", "天蝎座", "配对指数:70\n配对比重:54.46\n两情相悦指数:4\n天长地久指数:3\n结果评述:还蛮不错的一对");
        data[59].Set("天秤座", "射手座", "配对指数:90\n配对比重:44.56\n两情相悦指数:5\n天长地久指数:4\n结果评述:非常理想的一对");
        data[60].Set("天秤座", "摩羯座", "配对指数:50\n配对比重:58.42\n两情相悦指数:3\n天长地久指数:2\n结果评述:努力维持的一对");
        data[61].Set("天秤座", "水瓶座", "配对指数:100\n配对比重:48.52\n两情相悦指数:5\n天长地久指数:5\n结果评述:天生的一对");
        data[62].Set("天秤座", "双鱼座", "配对指数:40\n配对比重:40.60\n两情相悦指数:3\n天长地久指数:1\n结果评述:前途不容乐观的一对");

        data[63].Set("天蝎座", "天蝎座", "配对指数:80\n配对比重:50.50\n两情相悦指数:4\n天长地久指数:2\n结果评述:互相吸引又互相排斥的一对");
        data[64].Set("天蝎座", "射手座", "配对指数:70\n配对比重:54.46\n两情相悦指数:4\n天长地久指数:3\n结果评述:还蛮不错的一对");
        data[65].Set("天蝎座", "摩羯座", "配对指数:90\n配对比重:44.56\n两情相悦指数:5\n天长地久指数:4\n结果评述:非常理想的一对");
        data[66].Set("天蝎座", "水瓶座", "配对指数:50\n配对比重:58.42\n两情相悦指数:3\n天长地久指数:2\n结果评述:需要努力维持的一对");
        data[67].Set("天蝎座", "双鱼座", "配对指数:100\n配对比重:48.52n两情相悦指数:5\n天长地久指数:5\n结果评述:天生的一对");

        data[68].Set("射手座", "射手座", "配对指数:80\n配对比重:50.50\n两情相悦指数:4\n天长地久指数:4\n结果评述:相当理想的一对");
        data[69].Set("射手座", "摩羯座", "配对指数:70\n配对比重:54.46\n两情相悦指数:4\n天长地久指数:3\n结果评述:还蛮不错的一对");
        data[70].Set("射手座", "水瓶座", "配对指数:90\n配对比重:44.56\n两情相悦指数:5\n天长地久指数:4\n结果评述:非常理想的一对");
        data[71].Set("射手座", "双鱼座", "配对指数:90\n配对比重:58.42\n两情相悦指数:3\n天长地久指数:2\n结果评述:需要努力维持的一对");

        data[72].Set("摩羯座","摩羯座","配对指数:80\n配对比重:50:50\n两情相悦指数:4\n天长地久指数:4\n结果评述:还蛮不错的一对");
        data[73].Set("摩羯座","水瓶座","配对指数:70\n配对比重:54:46\n两情相悦指数:4\n天长地久指数:3\n结果评述:还蛮不错的一对 ");
        data[74].Set("摩羯座","双鱼座","配对指数:90\n配对比重:44:56\n两情相悦指数:5\n天长地久指数:4\n结果评述:非常理想的一对 ");

        data[75].Set("水瓶座","水瓶座","配对指数:80\n配对比重:50:50\n两情相悦指数:4\n天长地久指数:4\n结果评述:相当理想的一对");
        data[76].Set("水瓶座","双鱼座","配对指数:70\n配对比重:54:46\n两情相悦指数:4\n天长地久指数:3\n结果评述:还蛮不错的一对 ");

        data[77].Set("双鱼座","双鱼座","配对指数:80\n 配对比重:50:50\n两情相悦指数:4\n天长地久指数:4\n结果评述:相当理想的一对 ");

        for(int i=0;i<72;i++)
        {
            if((s1.equals(data[i].myConstellation)&&s2.equals(data[i].hisConstellation))
                    ||(s1.equals(data[i].hisConstellation)&&s2.equals(data[i].myConstellation)))
            {
                theAnswer.setText(data[i].details);break;
            }
        }

    }


}

button.xml

//按钮的shape
button.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <gradient android:startColor="#c0000000"  android:endColor="#c0000000" android:angle="90" />
    <solid android:color="#00ffffff" />
    <stroke android:width="1dp" android:color="#ff000000" />
    <corners android:radius="10dp" />
    <padding android:left="3dp" android:top="3dp" android:right="3dp" android:bottom="3dp" />
</shape>
button2.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <gradient android:startColor="#c0000000"  android:endColor="#c0000000" android:angle="90" />
    <solid android:color="#00ffffff" />
    <stroke android:width="3dp" android:color="#FFFF0000" />
    <corners android:radius="10dp" />
    <padding android:left="3dp" android:top="3dp" android:right="3dp" android:bottom="3dp" />
</shape>
colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="pink">#FF82AB</color>
    <color name="gray">#8B7765</color>
    <color name="blue">#B0E0E6</color>
    <color name="purple">#68228B</color>
    <color name="white">#FFFFFF</color>
</resources>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.homework"
    android:versionCode="1"
    android:versionName="5.2.1" >
 <uses-sdk
        android:minSdkVersion="21"
        android:targetSdkVersion="21" />
<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >```````````````
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".Register"
            android:label="@string/title_activity_register" >
        </activity>
        <activity
            android:name=".Star"
            android:label="@string/title_activity_star" >
        </activity>
        <activity
            android:name=".FindPasswd"
            android:label="@string/title_activity_find_passwd" >
        </activity>
        <activity
            android:name=".Star2"
            android:label="@string/title_activity_star2" >
        </activity>
        <activity
            android:name=".Result"
            android:label="@string/title_activity_result" >
        </activity>`
    </application>
    <application>
        <uses-library android:name="android.test.runner" />
    </application>

    <instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.example.adtest" >
    </instrumentation>

</manifest>
0
Posted in Android

Leave a Comment:

电子邮件地址不会被公开。