Приложение продолжает падать при нажатии элемента ListView - PullRequest
0 голосов
/ 27 февраля 2020

Здравствуйте, я новичок в Java и кодирования в целом.

Я использую ListView для отображения различных наборов слов, которые хранятся в массиве. Если щелкнуть элемент в списке, в массиве отобразятся слова, в соответствии с которыми был выбран элемент. Я добавил строки кода, которые отображают текст и подсказку в оператор if, и теперь мое приложение продолжает падать, когда я нажимаю на элемент 0.

Может кто-нибудь дать мне какой-нибудь совет?

Вот мой код:

package com.example.anotherapp;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    int i = -1;

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

    public void chooseGame() {
        final ArrayList<String> arrayList = new ArrayList<String>();
        final TextView wordTextView = findViewById(R.id.wordTextView);
        final EditText editTextView = findViewById(R.id.enterEditText);
        final Button nextButton = findViewById(R.id.nextButton);
        ArrayList<String> gamesArrayList = new ArrayList<String>();
        gamesArrayList.add("A Vegan's Worst Nightmare");
        gamesArrayList.add("The Wet Floor Sign");
        gamesArrayList.add("The Meaning of life");
        gamesArrayList.add("Campfire Story");
        gamesArrayList.add("The Crocobearamouse");
        final ListView gamesListView = findViewById(R.id.gamesListView);
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
                this,
                android.R.layout.simple_list_item_1,
                gamesArrayList);
        gamesListView.setAdapter(arrayAdapter);
        gamesListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                                                 @Override
                                                 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                                                     if (position == 0) {

                                                         gamesListView.setVisibility(View.INVISIBLE);
                                                         editTextView.setVisibility((View.VISIBLE));
                                                         wordTextView.setVisibility((View.VISIBLE));
                                                         nextButton.setVisibility(View.VISIBLE);


                                                         String[] zeroArray = {"Food", "Adjective", "Proper Noun", "Name"};
                                                         String displayHint = "";
                                                         String displayText = "";

                                                         displayText = enterWord() + zeroArray[i];
                                                         displayHint = zeroArray[i];

                                                         wordTextView.setText(displayText);
                                                         editTextView.setHint(displayHint);
                                                     }
                                                 }
                                             }
        );
    }

    public String enterWord() {
        String[] zeroArray = {"Food", "Adjective", "Proper Noun", "Name"};
        String entry;
        if (zeroArray[i].equals("Adjective")) {
            entry = "Enter an ";
        } else {
            entry = "Enter a ";
        }
        return entry;
    }

    public void nextWord(View view) {
        i++;
    }
}

1 Ответ

1 голос
/ 27 февраля 2020

Ваша переменная i начинается с -1, а ваши коды вызывают array[i], я думаю, что это основная причина сделать ваше приложение к sh

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