Кнопка, чтобы перенести меня на следующую страницу и начать игру - PullRequest
0 голосов
/ 24 апреля 2011

Трудно объяснить в заголовке. В принципе, насколько я могу судить, кнопка отправки берет имя и помещает его в массив так, как я хочу. Теперь мне нужно, чтобы кнопка «Воспроизвести» («Готово») перенесла пользователя и данные в следующий класс (который, я считаю, закодирован правильно), и мне нужно, чтобы начать игру. Игра, которую вы увидите во втором классе (получите данные из предыдущего). Мне нужно, чтобы она отображала имена из массива имен 1 за один раз и случайным образом назначала им задачу для выполнения из массива задач.

В настоящее время приложение принудительно закрывается после нажатия кнопки воспроизведения. Я связываю оба класса, потому что уверен, что проблема во втором классе. Спасибо за вашу помощь заранее.

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-й странице я хотел бы назначить счету для любого массива имен, который находится наверху, и отслеживать до финального раунда, где будет отображаться победитель. Если у кого-то есть идеи, как заставить это работать.

Ответы [ 2 ]

0 голосов
/ 24 апреля 2011

Вам уже сказали, что вы используете неинициализированные массивы здесь: EditText и кнопки для их отправки .Но вы также пытаетесь получить дополнительный массив, однако вы не вкладываете его в намерения.И вы используете неинициализированный массив tasks в классе Game.

0 голосов
/ 24 апреля 2011

Обязательно ли вы включили игровое действие в качестве узла приложения в свой AndroidManifest?

Если нет, откройте манифест на вкладке приложения, в нижней части нажмите Добавить и добавьте действие с именем.Игры

Без этого это намерение никогда не будет получено другим классом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...