简体   繁体   English

如何让 TextView 从 EditText 打印值?

[英]How to make TextView print the value from EditText?

  1. I want the EditText element print the value I have entered in the UserInputs Array.我希望 EditText 元素打印我在 UserInputs 数组中输入的值。 I have tried Log.v and doInBackground,but that doesn't work.我已经尝试过 Log.v 和 doInBackground,但这不起作用。
  2. I would be happy if you can explain how do I print the needed value in the EditText in the future, because I'm new in the Adnroid development.如果您能解释我将来如何在 EditText 中打印所需的值,我会很高兴,因为我是 Adnroid 开发的新手。
  3. I can send .xml file if needed.如果需要,我可以发送 .xml 文件。 Also, don't mind comments inside the code...另外,不要介意代码中的注释......

This is the code:这是代码:

    import androidx.appcompat.app.AppCompatActivity;

   import android.os.AsyncTask;
   import android.os.Bundle;
   import android.util.Log;
   import android.view.View;
   import android.widget.EditText;
   import android.widget.TextView;
   import android.widget.Button;
   import android.widget.Toast;

   import java.util.*;


public class MainActivity extends AppCompatActivity {
private EditText user_input;
private EditText user_input1;
private Button Button;
private TextView result;


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

    user_input = findViewById(R.id.user_input);
    Button = findViewById(R.id.Button);
    result = findViewById(R.id.result);
    user_input1 = findViewById(R.id.user_input1);

    Button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(user_input.getText().toString().trim().equals("")&&user_input1.getText().toString().trim().equals(""))
                Toast.makeText(MainActivity.this, "Введите хотя бы 2 варианта", Toast.LENGTH_LONG).show();
            else{
                //creating method for randomly choosing one of the user inputs
                Random rand = new Random();
                EditText[] userInputs = {user_input, user_input1};
                int randomAnswer = rand.nextInt(userInputs.length);
                result = userInputs[randomAnswer];

                Log.v("EditText", result.getText().toString());
        }}
    });
}
private class getResult extends AsyncTask<String, String, TextView> {

    @Override
    protected TextView doInBackground(String... strings) {

        return result;
    }
}
}

Actually, I want to print the value in ResuRrect how to do that?实际上,我想在 ResuRrect 中打印值怎么做?

can you please explain me where exactly you want to print values??你能解释一下你到底想在哪里打印值吗?? So that I can help you.以便我可以帮助您。

If you want to print whatever inserted by user you can use textview to display it.如果您想打印用户插入的任何内容,您可以使用 textview 来显示它。

for that just add two textview in xml find it by id in java and on button click perform set text on it.为此,只需在 xml 中添加两个 textview 即可通过 java 中的 id 找到它,然后单击按钮在其上执行设置文本。

for example you have two textview例如你有两个文本视图

TextView tv1 = findViewById(R.id.tv1);
TextView tv2 = findViewById(R.id.tv2);

and button click will be as follows和按钮点击将如下

Button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (TextUtils.isEmpty(user_input.getText().toString().trim()) &&
                        TextUtils.isEmpty(user_input1.getText().toString().trim())) {
                    Toast.makeText(MainActivity.this, "Введите хотя бы 2 варианта", Toast.LENGTH_LONG).show();

                } else {
                    //creating method for randomly choosing one of the user inputs

                    tv1.setText(user_input.getText().toString().trim());
                    tv2.setText(user_input1.getText().toString().trim());
                    Log.e("EditText1", user_input.getText().toString().trim());
                    Log.e("EditText2", user_input2.getText().toString().trim());
                }
            }
        });

Your question isn't clear but if you want to display text to the user, it is better to use TextView.您的问题不清楚,但如果您想向用户显示文本,最好使用 TextView。 for the set text of EditText or TextView, you should use setText method.对于 EditText 或 TextView 的设置文本,您应该使用setText方法。

user_input.setText("hello")

So anyway I made it work.所以无论如何我让它工作。 Now when user enters two values in EditText, program will randomly choose on of the inputs and print it in the TextView.现在,当用户在 EditText 中输入两个值时,程序将随机选择输入并将其打印在 TextView 中。 Here is the code:这是代码:

 public void onClick(View v) {
     if(user_input.getText().toString().trim().equals("")&&user_input1.getText().toString().trim().equals(""))
                Toast.makeText(MainActivity.this, "Введите хотя бы 2 варианта", Toast.LENGTH_LONG).show();
            else{
                    //creating method for randomly choosing one of the user inputs
                    Random rand = new Random();
                    String[] key = {user_input1.getText().toString().trim(), user_input.getText().toString().trim()};
                    int randomAnswer = rand.nextInt(key.length);

                    result.setText(key[randomAnswer].toString().trim());
        }}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM