如何将字符串从一个textview传递到同一活动的另一个texview?

问题描述 投票:0回答:2

我在Android Studio中使用这个bingo callboard项目。原理是当我点击一个数字按钮时,它将在第一个文本视图上显示。当我点击第二个数字按钮时,第一个文本视图将显示当前按下的数字,而之前的字符串将传递到第二个文本视图。我如何做到这一点?包括应用程序的截图。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);
                }
            }
        });

截图

java android android-studio
2个回答
0
投票

嘿,根据我的理解,你需要用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。你可以用新的数据作为参数从你的按钮点击中调用这个方法。希望这能帮助你


0
投票

p.matthew13的代码没有问题。问题在于代码的顺序。我可能还得删除我的代码上的一行,因为它已经是多余的了。

多余的代码是 txt.setText(""); 与...相矛盾 txt.setText(newData);我必须删除我的setText代码,并将其替换为 updateTextView("");另外,我确实把p.matthew13的代码放在了我的public void之前。

这就解决了我的问题,在尝试洗牌代码执行顺序之后。

© www.soinside.com 2019 - 2024. All rights reserved.