按钮将我转到下一页并开始游戏

时间:2011-04-24 16:56:52

标签: android button

标题中很难解释。基本上,据我所知,提交按钮取名并将其放入数组中,就像我想要的那样。我现在需要的是Play(完成)按钮将用户和数据传输到下一个类(我认为编码正确),我需要它来开始游戏。您将在第二个类中看到的游戏(从前一个获取数据)我需要它一次显示名称数组1中的名称,并从tasks数组中随机分配任务。

目前,点击播放按钮后应用程序正在关闭。我正在连接两个类,因为我很确定问题出在第二课。提前谢谢你的帮助。

的Class1

public class Class1 extends Activity
{
    int players=0;
    String names[];

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.class1);

    final EditText input = (EditText) findViewById(R.id.nameinput);

    final ArrayList<String> names = new ArrayList<String>();



    Button submitButton = (Button) findViewById(R.id.submit_btn);
    submitButton.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View submit1)
        {
            players++;
            for(int i=0; i < 6; i++)
            {
                names.add(input.getText().toString());

                input.setText("");
            }
        }
    });

    Button doneButton = (Button) findViewById(R.id.done_btn);
    doneButton.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View done1)
        {
            Intent done = new Intent(Class1.this, Game.class);
            Bundle bundle = new Bundle();
            bundle.putStringArrayList("arrayKey", names);

            done.putExtra("players", players);
            //done.putExtra("names", names[players]);
            startActivity(done);
        }
    });
}

游戏类

public class Game extends Activity
{
    int players, counter=0, score, ptasks,rindex;
    String[] names, tasks;
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.game);

    Bundle bundle = this.getIntent().getExtras();
    String[] names = bundle.getStringArray("arrayKey");

    Intent game = getIntent();
    players = game.getIntExtra("players", 1);
    //names = game.getStringArrayExtra("names");

    Random generator = new Random();

    tasks[0]= "";
    tasks[1]= "";
    tasks[2]= "";
    tasks[3]= "";
    tasks[4]= "";
    tasks[5]= "";
    tasks[6]= "";
    tasks[7]= "";
    tasks[8]= "";
    tasks[9]= "";



    while (counter <5)
    {
        for (int i = 0; i < players; i++)
        {
            TextView name1 = (TextView) findViewById(R.id.pname);
            name1.setText( names[i]+":");

            ptasks = 10;
            rindex = generator.nextInt(ptasks);

            TextView task = (TextView) findViewById(R.id.task);
            task.setText( tasks[rindex]);


        }
        Button failButton = (Button) findViewById(R.id.fail_btn);
        failButton.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View failed)
            {

            }
        });

        Button notButton = (Button) findViewById(R.id.notbad_btn);
        notButton.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View notbad)
            {

            }
        });

        Button champButton = (Button) findViewById(R.id.champ_btn);
        champButton.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View champp)
            {

            }
        });


        counter++;
    }


}

以为我还应该提到第二页上的这些按钮我想为任何名字阵列的人分配一个分数并跟踪到最后一轮它将显示获胜者。如果有人知道如何做到这一点。

2 个答案:

答案 0 :(得分:0)

您是否确保在AndroidManifest中将游戏活动作为应用程序节点包含在内?

如果没有,请打开清单到应用程序选项卡,在底部点击添加,然后添加名称的活动。游戏

如果没有这个,那个意图永远不会被其他类接受。

答案 1 :(得分:0)

您已经被告知在这里使用非初始化数组:EditText and using buttons to submit them。但是你也试图获得额外的数组,但是你没有把它放在意图之内。并且您在tasks类中使用了未初始化的Game数组。