java - 如何将字符串从一个 TextView 传递到同一 Activity 的另一个 TextView ?

标签 java android android-studio

我正在 Android Studio 中处理这个 bingo callboard 项目。原理是当我单击数字按钮时,它将显示在第一个 TextView 上。当我单击第二个数字按钮时,第一个 TextView 将显示当前按下的数字,前一个字符串将传递到第二个 TextView 。我该怎么做?包括应用程序的屏幕截图。 MainActivity.java 代码示例如下:

import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;


public class MainActivity extends AppCompatActivity {
    private Activity mainActivity;

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

        mainActivity = MainActivity.this;

        final Button button1 = findViewById(R.id.b1);
        final Button button2 = findViewById(R.id.b2);
        final Button button3 = findViewById(R.id.b3);
        final Button button4 = findViewById(R.id.b4);
        final Button button5 = findViewById(R.id.b5);

        final TextView txt = (TextView) findViewById(R.id.presentcall);
        final TextView lst = (TextView) findViewById(R.id.lastcall);

        button1.setOnClickListener(new View.OnClickListener() {
            Drawable background = button1.getBackground();
            @Override
            public void onClick(View v) {
                txt.setText("B1");
                    if (button1.getText().equals("1"))
                {
                    button1.setText(" 1 ");
                    button1.setBackgroundResource(R.drawable.onclick_border);
                }
                else if (button1.getText().equals(" 1 "))
                {
                    button1.setText("1");
                    button1.setBackground(background);
                }
            }
        });
        button2.setOnClickListener(new View.OnClickListener() {
            Drawable background = button2.getBackground();
            @Override
            public void onClick(View v) {
                txt.setText("B2");
                if (button2.getText().equals("2"))
                {
                    button2.setText(" 2 ");
                    button2.setBackgroundResource(R.drawable.onclick_border);
                }
                else if (button2.getText().equals(" 2 "))
                {
                    button2.setText("2");
                    button2.setBackground(background);
                }

            }
        });
        button3.setOnClickListener(new View.OnClickListener() {
            Drawable background = button3.getBackground();
            @Override
            public void onClick(View v) {
                txt.setText("B3");
                if (button3.getText().equals("3"))
                {
                    button3.setText(" 3 ");
                    button3.setBackgroundResource(R.drawable.onclick_border);
                }
                else if (button3.getText().equals(" 3 "))
                {
                    button3.setText("3");
                    button3.setBackground(background);
                }
            }
        });
        button4.setOnClickListener(new View.OnClickListener() {
            Drawable background = button4.getBackground();
            @Override
            public void onClick(View v) {
                txt.setText("B4");
                if (button4.getText().equals("4"))
                {
                    button4.setText(" 4 ");
                    button4.setBackgroundResource(R.drawable.onclick_border);
                }
                else if (button4.getText().equals(" 4 "))
                {
                    button4.setText("4");
                    button4.setBackground(background);
                }
            }
        });
        button5.setOnClickListener(new View.OnClickListener() {
            Drawable background = button5.getBackground();
            @Override
            public void onClick(View v) {
                txt.setText("B5");
                if (button5.getText().equals("5"))
                {
                    button5.setText(" 5 ");
                    button5.setBackgroundResource(R.drawable.onclick_border);
                }
                else if (button5.getText().equals(" 5 "))
                {
                    button5.setText("5");
                    button5.setBackground(background);
                }
            }
        });

Screenshot

最佳答案

嘿,据我了解,您需要使用 txt textView 的数据更新 lst textview。那么您可以编写一个通用方法,可以通过单击新数据的任何按钮来调用该方法。像这样的东西:

public class MainActivity extends AppCompatActivity {
        private Activity mainActivity;

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

        mainActivity = MainActivity.this;

        final Button button1 = findViewById(R.id.b1);
        final Button button2 = findViewById(R.id.b2);
        final Button button3 = findViewById(R.id.b3);
        final Button button4 = findViewById(R.id.b4);
        final Button button5 = findViewById(R.id.b5);

        final TextView txt = (TextView) findViewById(R.id.presentcall);
        final TextView lst = (TextView) findViewById(R.id.lastcall);

        button1.setOnClickListener(new View.OnClickListener() {
            Drawable background = button1.getBackground();
            @Override
            public void onClick(View v) {
                txt.setText("B1");
                updateTextView("B1");
                    if (button1.getText().equals("1"))
                {
                    button1.setText(" 1 ");
                    button1.setBackgroundResource(R.drawable.onclick_border);
                }
                else if (button1.getText().equals(" 1 "))
                {
                    button1.setText("1");
                    button1.setBackground(background);
                }
            }
        });
        button2.setOnClickListener(new View.OnClickListener() {
            Drawable background = button2.getBackground();
            @Override
            public void onClick(View v) {
                txt.setText("B2");
                 updateTextView("B2");
                if (button2.getText().equals("2"))
                {
                    button2.setText(" 2 ");
                    button2.setBackgroundResource(R.drawable.onclick_border);
                }
                else if (button2.getText().equals(" 2 "))
                {
                    button2.setText("2");
                    button2.setBackground(background);
                }

            }
        });
        button3.setOnClickListener(new View.OnClickListener() {
            Drawable background = button3.getBackground();
            @Override
            public void onClick(View v) {
                txt.setText("B3"); 
                 updateTextView("B3");
                if (button3.getText().equals("3"))
                {
                    button3.setText(" 3 ");
                    button3.setBackgroundResource(R.drawable.onclick_border);
                }
                else if (button3.getText().equals(" 3 "))
                {
                    button3.setText("3");
                    button3.setBackground(background);
                }
            }
        });
        button4.setOnClickListener(new View.OnClickListener() {
            Drawable background = button4.getBackground();
            @Override
            public void onClick(View v) {
                txt.setText("B4");
                 updateTextView("B4");
                if (button4.getText().equals("4"))
                {
                    button4.setText(" 4 ");
                    button4.setBackgroundResource(R.drawable.onclick_border);
                }
                else if (button4.getText().equals(" 4 "))
                {
                    button4.setText("4");
                    button4.setBackground(background);
                }
            }
        });
        button5.setOnClickListener(new View.OnClickListener() {
            Drawable background = button5.getBackground();
            @Override
            public void onClick(View v) {
                txt.setText("B5");
                 updateTextView("B5");
                if (button5.getText().equals("5"))
                {
                    button5.setText(" 5 ");
                    button5.setBackgroundResource(R.drawable.onclick_border);
                }
                else if (button5.getText().equals(" 5 "))
                {
                    button5.setText("5");
                    button5.setBackground(background);
                }
            }
        });
   }

    private void updateTextView(String newData){
    String oldData = txt.getText().toString();
    lst.setText(oldData);
    txt.setText(newData);
    }
}

这将使用您的 txt TextView 数据更新您的最后一个 TextView 。您可以通过单击按钮来调用此方法,并将新数据作为参数。希望这对您有帮助

关于java - 如何将字符串从一个 TextView 传递到同一 Activity 的另一个 TextView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62187723/

相关文章:

java - 如何更改 jboss 日志记录级别以显示我正在调用哪个 java 类?

java - 如何使用java计算linux机器上的可用磁盘空间?

java - 枚举元素如何在内部排列或链接?

android - 在所有 mdpi/hdpi/xhdpi 等中添加图像会增加所有设备的应用程序大小吗? - 安卓

Java 正则表达式提取捕获组(如果存在)

android - 检测USB设备是否为安卓手机

Android:是否有用于遍历 SparseArray 的成语

android-studio - 如何使用 Dagger2 android 为 ViewModel 使用构造函数注入(inject)?

java - 用于比较两个 Mat 时 countNonZero 出错

android - 为什么当我添加 GDPR EU 同意时我的应用程序 android 崩溃?