Android保持按钮选择的轨道

时间:2012-02-17 18:53:05

标签: android

我在java中编写了一些代码,根据用户的选择猜测一个数字。这是非常简单的代码。我试图通过在不同的页面上显示不同的数字集,将此代码集成到Android应用程序中。如果用户的号码在集合中,则用户将单击“是”,如果不在,则单击“否”,然后他们将被重定向到另一个页面。

问题是我不知道如何在页面中跟踪他们的选择,以便我可以根据原始代码中显示的值运行“If”语句。有没有一种简单的方法来跟踪他们是否在页面中单击“是”或“否”?

这是我的java代码

public class BinaryGame 
{
    public static void main (String []args)
    {
        String set1, set2, set3, set4, set5, another = "y";
        int num, num1, num2, num3, num4, rand, number = 0, count = 0;
        final int PER_LINE = 4;

        Scanner scan = new Scanner (System.in);
        Random generator = new Random();

        while (another.equalsIgnoreCase("y"))
        {
            System.out.println ("Think of a number between 0 and 31. And I will be able to figure it out.");
            System.out.println ("");

            rand = generator.nextInt(2);
            if (rand == 1)
            {
                for (num = 16; num < 32; num++)
                {
                    System.out.print(num + " ");

                    count++;
                    if (count % PER_LINE ==0)
                    System.out.println ();
                }

                System.out.print ("Is your number in this group? y/n: ");
                set1 = scan.nextLine();
                if (set1.equalsIgnoreCase("y"))
                number += 16;
                else
                number += 0;
            }
            else 
            {
                for (num = 0; num < 16; num++)
                {
                    System.out.print(num + " ");

                    count++;
                    if (count % PER_LINE ==0)
                    System.out.println ();
                }

                System.out.print ("Is your number in this group? y/n: ");
                set1 = scan.nextLine();
                if (set1.equalsIgnoreCase("y"))
                    number += 0;
                else
                    number += 16;
            }

            System.out.println ();

            rand = generator.nextInt(2);
            if (rand == 1)
            {
                for (num1 = 8; (num1 < 16) || (23 < num1 && num1 < 32) ; num1++)
                {
                    System.out.print (num1 + " ");

                    count++;
                    if (count % PER_LINE ==0)
                    System.out.println ();
                    if (num1 == 15)
                    num1 = 23;
                }
                System.out.print ("Is your number in this group? y/n: ");
                set2 = scan.nextLine();
                if (set2.equalsIgnoreCase("y"))
                number += 8;
                else
                number += 0;
            }
            else
            {
                for (num1 = 0; (num1 < 8) || (15 < num1 && num1 < 24) ; num1++)
                {
                    System.out.print (num1 + " ");

                    count++;
                    if (count % PER_LINE ==0)
                    System.out.println ();
                    if (num1 == 7)
                    num1 = 15;
                }
                System.out.print ("Is your number in this group? y/n: ");
                set2 = scan.nextLine();
                if (set2.equalsIgnoreCase("y"))
                number += 0;
                else
                number += 8;
            }
            System.out.println ();
            rand = generator.nextInt(2);
            if (rand == 1)
            {
                for (num2 = 4; (num2 < 8) || (11 < num2 && num2 < 16) || (19 < num2 && num2 < 24) || (27 < num2 && num2 < 32); num2++)
                {
                    System.out.print (num2 + " ");

                    count++;
                    if (count % PER_LINE ==0)
                        System.out.println ();
                    if (num2 == 7)
                        num2 = 11;
                    if (num2 == 15)
                        num2 = 19;
                    if (num2 == 23)
                        num2 = 27;
                }

                System.out.print ("Is your number in this group? y/n: ");
                set3 = scan.nextLine();
                if (set3.equalsIgnoreCase("y"))
                    number += 4;
                else
                    number += 0;
            }
            else
            {
                for (num2 = 0; (num2 < 4) || (7 < num2 && num2 < 12) || (15 < num2 && num2 < 20) || (23 < num2 && num2 < 28); num2++)
                {
                    System.out.print (num2 + " ");

                    count++;
                    if (count % PER_LINE ==0)
                        System.out.println ();
                    if (num2 == 3)
                        num2 = 7;
                    if (num2 == 11)
                        num2 = 15;
                    if (num2 == 19)
                        num2 = 23;
                }

                System.out.print ("Is your number in this group? y/n: ");
                set3 = scan.nextLine();
                if (set3.equalsIgnoreCase("y"))
                    number += 0;
                else
                    number += 4;
            }
            System.out.println ();
            rand = generator.nextInt(2);
            if (rand == 1)
            {
                for (num3 = 2; (num3 < 4) || (5 < num3 && num3 < 8) || (9 < num2 && num3 < 12) || (13 < num3 && num3 < 16) || 
                    (17 < num3 && num3 < 20) || (21 < num3 && num3 < 24) || (25 < num3 && num3 < 28) || (29 < num3 && num3 < 32); num3++)
                {
                    System.out.print (num3 + " ");

                    count++;
                    if (count % PER_LINE ==0)
                        System.out.println ();
                    if (num3 == 3)
                        num3 = 5;
                    if (num3 == 7)
                        num3 = 9;
                    if (num3 == 11)
                        num3 = 13;
                    if (num3 == 15)
                        num3 = 17;
                    if (num3 == 19)
                        num3 = 21;
                    if (num3 == 23)
                        num3 = 25;
                    if (num3 == 27)
                        num3 = 29;
                }
                System.out.print ("Is your number in this group? y/n: ");
                set4 = scan.nextLine();
                if (set4.equalsIgnoreCase("y"))
                    number += 2;
                else
                    number += 0;
            }
            else
            {
                for (num3 = 0; (num3 < 2) || (3 < num3 && num3 < 6) || (7 < num2 && num3 < 10) || (11 < num3 && num3 < 14) || 
                (15 < num3 && num3 < 18) || (19 < num3 && num3 < 22) || (23 < num3 && num3 < 26) || (27 < num3 && num3 < 30); num3++)
            {
                System.out.print (num3 + " ");

                count++;
                if (count % PER_LINE ==0)
                    System.out.println ();
                if (num3 == 1)
                    num3 = 3;
                if (num3 == 5)
                    num3 = 7;
                if (num3 == 9)
                    num3 = 11;
                if (num3 == 13)
                    num3 = 15;
                if (num3 == 17)
                    num3 = 19;
                if (num3 == 21)
                    num3 = 23;
                if (num3 == 25)
                    num3 = 27;
            }
            System.out.print ("Is your number in this group? y/n: ");
            set4 = scan.nextLine();
            if (set4.equalsIgnoreCase("y"))
                number += 0;
            else
                number += 2;
            }
            System.out.println ();
            rand = generator.nextInt(2);
            if (rand == 1)
            {
                for (num4 = 1; num4 < 32; num4 += 2)
                {
                    System.out.print (num4 + " ");
                    count++;
                    if (count % PER_LINE ==0)
                        System.out.println ();
                }
                System.out.print ("Is your number in this group? y/n: ");
                set5 = scan.nextLine();
                if (set5.equalsIgnoreCase("y"))
                    number += 1;
                else
                    number += 0;
            }
            else
            {
                for (num4 = 0; num4 < 32; num4 += 2)
                {
                    System.out.print (num4 + " ");
                    count++;
                    if (count % PER_LINE ==0)
                        System.out.println ();
                }
                System.out.print ("Is your number in this group? y/n: ");
                set5 = scan.nextLine();
                if (set5.equalsIgnoreCase("y"))
                    number += 0;
                else
                    number += 1;
            }
            System.out.println ();
            System.out.println ("You chose: " + number);
            number = 0;
            System.out.print ("Would you like to play again? y/n: ");
            another = scan.nextLine();
        }

    }

}

1 个答案:

答案 0 :(得分:1)

如果您在某个页面中表示同一个应用程序中的Acvities,那么您需要查看SharedPreferencesclass referencedev guide)。

在按下按钮的Activity中,您可能想要做一些事情,如:

SharedPreferences prefs = getSHaredPreferecne("buttonPrefs");
SharedPreferences.Editor editor = prefs.editor();

editor.PutBoolean("btnYes", true);
editor.commit();

然后,当您需要访问它时(再次使用相同的应用程序):

SharedPreferecnes myPrefs = getShharedPreferences("buttonPrefs")
boolean yesIsPressed = myPrefs.getBoolean("btnYes", false)    // the second param is a default return value if preference is not found
只要您拥有正确的名称,

SharedPreferences就可以在同一个应用程序的任何地方使用。