Вывод содержимого editText в массив для отображения в textView - PullRequest
0 голосов
/ 23 февраля 2020

У меня проблемы с выводом данных из моего editText в textView. Мое приложение запрашивает ввод от пользователя, а затем отображает его, объединяя их вместе с другими словами и отображая в конце одной строкой в ​​textView, хотя для целей тестирования я сделал textView видимым во все времена. Следующее слово запрашивается с помощью кнопки. Проблема в том, что я могу отображать только один элемент массива за раз. Например, если я ввожу слово «таблица» в свой текст редактирования, а затем нажимаю кнопку. TextView покажет «есть таблица, которая есть». Как только я ввожу другое слово, например «желтый», и нажимаю на кнопку, на которой изображено «есть желтый»

Вот мой код

public class MainActivity extends AppCompatActivity {


    int i = -1;


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

        chooseGame();

    }

    public String enterWord() {


        String[] array = {"Adjective", "Adjective", "Proper Noun", "Name"};
        String entry;
        if (array[i].equals("Adjective")) {

            entry = "Enter an ";
        } else {
            entry = "Enter a ";
        }
        return entry;

    }


    public void nextWord(View view) { //nextWord is the cnclick of the button


        i++;
        getNextWord();

    getInputs();



    }



    public void getNextWord() {
        String[] array = {"Adjective", "Adjective", "Proper Noun", "Name"};
        TextView wordTextView = findViewById(R.id.wordTextView);
        Button nextButton = findViewById(R.id.nextButton);

        EditText editTextView = findViewById(R.id.enterEditText);
        String displayText = enterWord() + array[i];
        String displayHint = array[i];

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


        }

    }

    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 <= 5 && position >= 0) {

                                                         gamesListView.setVisibility(View.INVISIBLE);

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

                                                     }

                                                 }


                                             }
        );


    }

        public void getInputs() {
    TextView finalTextView = findViewById(R.id.finalTextView);
            EditText editTextView = findViewById(R.id.enterEditText);
            String[] inputsArray = {"","","","",""};
       inputsArray[i] = editTextView.getText().toString();
       String inputs = "There is a " + inputsArray[0] + " that is" + inputsArray[1];

        finalTextView.setText(inputs);


    }



    }

Вот мой XML

  <TextView

        android:id="@+id/wordTextView"
        android:layout_width="418dp"
        android:layout_height="146dp"
        android:layout_marginTop="84dp"
        android:text="Enter a noun"
        android:gravity="center"
        android:textSize="30sp"
        android:visibility="invisible"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <EditText
        android:id="@+id/enterEditText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="244dp"
        android:ems="10"
        android:hint="Noun"
        android:visibility="invisible"
        android:inputType="textPersonName"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@+id/wordTextView" />

    <Button
        android:id="@+id/nextButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="180dp"
        android:onClick="nextWord"
        android:text="Next"
        android:visibility="invisible"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@+id/enterEditText"
        app:layout_constraintVertical_bias="0.0" />

    <ListView
        android:id="@+id/gamesListView"
        android:layout_width="404dp"
        android:layout_height="647dp"
        tools:layout_editor_absoluteX="3dp"
        tools:layout_editor_absoluteY="84dp" />

    <TextView
        android:id="@+id/finalTextView"
        android:layout_width="157dp"
        android:layout_height="98dp"
        app:layout_constraintBottom_toTopOf="@+id/enterEditText"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

1 Ответ

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

В методе getInputs () вы каждый раз создаете новый массив, который очищает ранее добавленные значения.

Переместите следующую строку за пределы метода getInputs (), чтобы он был доступен для всего класса (например, ниже строки int i = -1;)

String[] inputsArray = {"","","","",""};

Таким образом, вы не будете каждый раз переопределять массив, и он покажет «есть таблица желтого цвета» вместо «есть желтое».

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