Как получить текст от кнопки для редактирования текста? - PullRequest
0 голосов
/ 04 мая 2020

этот код работает очень хорошо, но теперь, когда вопрос - CAR button1 = A button2 = R button3 = C, когда я нажимаю button3 button1 = НЕВИДИМОЕ редактировать текст = A, а когда я нажимаю button2, редактировать текст = AI хочу, когда нажмите на кнопку редактировать текст, получить текст от кнопки и проверить текст в редактируемом тексте

требуется: отредактировать текст, получить кнопку формы символа, добавить этот код в функцию, удалить последний индекс из массива

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;

import java.util.Random;


public class MainActivity extends AppCompatActivity {

   LinearLayout linearlayout;
   Button button;
   EditText txt;


    String Array[]= {"car","blue","red","fox"};

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


        linearlayout = findViewById(R.id.linearlayout);
        txt = findViewById(R.id.txt);





        int random = (int) (Math.random() * Array.clone().length);

         StringBuilder word = new StringBuilder(Array[random]);



        for (int i = 0; i < Array[random].length(); i++) {

            char id = 'b';
            button = new Button(this);
            button.setId(id + i);
            linearlayout.addView(button);


            int randIndex = new Random().nextInt(word.length());
            button.setText("" + word.charAt(randIndex));
            word.deleteCharAt(randIndex);



            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {


                    button.setVisibility(View.INVISIBLE);

                    txt.setText(txt.getText().toString() + button.getText());





                }
            });



        }


    }


    }

Ответы [ 2 ]

0 голосов
/ 04 мая 2020

Не уверен в вопросах, но единственное, что я обнаружил, это проблема с кодом.

txt.setText (txt.getText (). ToString () + button.getText () );

Жирная часть не возвращает последовательность символов. Должно быть то же самое, что и текст для редактирования.

button.getText (). ToString ();

0 голосов
/ 04 мая 2020
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;

import java.util.Random;


public class MainActivity extends AppCompatActivity {

    LinearLayout linearlayout;
    //Button button; //TODO: is local var!
    EditText txt; //Global var

    String Array[]= {"car","blue","red","fox"};

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

        linearlayout = findViewById(R.id.linearlayout);
        txt = findViewById(R.id.txt);

        int random = (int) (Math.random() * Array.clone().length);

        StringBuilder word = new StringBuilder(Array[random]);

        for (int i = 0; i < Array[random].length(); i++) {

            char id = 'b';
            final Button button = new Button(this); //local var
            button.setId(id + i);
            linearlayout.addView(button);


            int randIndex = new Random().nextInt(word.length());
            button.setText("" + word.charAt(randIndex));
            word.deleteCharAt(randIndex);

            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    //the problem was here (var button)

                    button.setVisibility(View.INVISIBLE);

                    txt.setText(txt.getText().toString() + button.getText());
                }
            });

        }

    }

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