将 editText 的内容输出到数组以在 textView 中显示

Outputting the contents of an editText to an array to be displayed in a textView

我在将数据从 editText 输出到 textView 时遇到问题。我的应用程序要求用户输入,然后通过将它们与其他单词连接在一起并在末尾显示在 textView 中的一个字符串中来显示它,尽管出于测试目的,我已经使 textView 始终可见。使用按钮询问下一个单词。问题是我一次只能显示数组的一个元素。例如,如果我在我的 editText 中输入单词 "table",然后按下按钮。 textView 将显示 "there is a table that is "。一旦我输入另一个词,例如 "yellow" 并按下它显示的按钮 "there is a that is yellow"

这是我的代码

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" />

在getInputs()方法中,每次都创建一个新数组,这会清除之前添加的值。

将以下行移到 getInputs() 方法之外,以便整个 class 都可用(例如,在 int i = -1; 行下方)

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

这样你就不会每次都覆盖数组,它会显示 "there is a table that is yellow" 而不是 "there is a that is yellow"。