如何从按钮获取文本到编辑文本框?

huangapple 未分类评论50阅读模式
英文:

How to get text from button to edit text?

问题

这段代码运行得很好但现在当问题是CAR时button1 = Abutton2 = Rbutton3 = C当我点击button3时button1 = INVISIBLEedit text = A当我点击button2时edit text = A我希望当点击按钮时编辑文本从按钮获取文本并检查编辑文本中的文本
要求编辑文本从按钮获取字符将此代码添加到函数中从数组中删除最后一个索引

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());
                }
            });
        }
    }
}
英文:

> this code work very well but now when question is CAR button1 = A button2 = R button3 = C when I click button3 button1 = INVISIBLE edit text = A and when I click button2 edit text = A I want when click on button edit text get text from button and check text in edit text
#requires: edit text get char form button, add this code to function , remove last index from array

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[]= {&quot;car&quot;,&quot;blue&quot;,&quot;red&quot;,&quot;fox&quot;};

    @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 &lt; Array[random].length(); i++) {

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


            int randIndex = new Random().nextInt(word.length());
            button.setText(&quot;&quot; + 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());





                }
            });



        }


    }


    }

答案1

得分: 0

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;
    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';
            final Button 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());
                }
            });
        }
    }
}
英文:
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[]= {&quot;car&quot;,&quot;blue&quot;,&quot;red&quot;,&quot;fox&quot;};

    @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 &lt; Array[random].length(); i++) {

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


            int randIndex = new Random().nextInt(word.length());
            button.setText(&quot;&quot; + 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());
                }
            });

        }

    }

}

答案2

得分: 0

不确定问题,但我发现代码存在一个问题。

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

粗体部分不会返回字符序列。应该与编辑文本相同。

button.getText().toString();

英文:

Not sure of the questions, but the one thing I did find to be an issue with the code.

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

The bolded part doesn't returns a char sequence. Should be the same thing as the edit text.

button.getText().toString();

huangapple
  • 本文由 发表于 2020年5月4日 21:24:33
  • 转载请务必保留本文链接:https://java.coder-hub.com/61593301.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定