Android按钮点击文字

时间:2019-01-19 11:04:47

标签: java android

我有4个按钮和6个textview。我希望当单击任何按钮(例如按钮2)时,按钮2的文本应在第一个文本视图中;当单击另一个按钮(例如按钮4)时,按钮4的文本应在第二个文本视图中。 。我不知道该怎么办。我已经为此写了代码,请给我这个软件包com.aswdc_wordcross;的条件。

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    Button[] buttons = new Button[4];
    TextView[] textViews = new TextView[6];

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

        buttons[0] = (Button) findViewById(R.id.Button1);
        buttons[0].setOnClickListener(this);
        buttons[1] = (Button) findViewById(R.id.Button2);
        buttons[1].setOnClickListener(this);
        buttons[2] = (Button) findViewById(R.id.Button3);
        buttons[2].setOnClickListener(this);
        buttons[3] = (Button) findViewById(R.id.Button4);
        buttons[3].setOnClickListener(this);

        textViews[0] = (TextView) findViewById(R.id.txtview1);
        textViews[1] = (TextView) findViewById(R.id.txtview2);
        textViews[2] = (TextView) findViewById(R.id.txtview3);
        textViews[3] = (TextView) findViewById(R.id.txtview4);
        textViews[4] = (TextView) findViewById(R.id.txtview5);
        textViews[5] = (TextView) findViewById(R.id.txtview6);
    }

    @Override
    public void onClick(View v) {

        switch (v.getId()){

            case R.id.Button1:
                break;

            case R.id.Button2:
                break;

            case R.id.Button3:
                break;

            case  R.id.Button4:
                break;

            default:
                break;
        }
    }
}`

1 个答案:

答案 0 :(得分:1)

您有4个按钮和6个TextView,因此不清楚您想要什么。
要设置TextView的文本,请使用其setText()方法,例如:

textViews[1].setText("something");

如果希望将按钮的文本显示在TextView中:

textViews[1].setText(buttons[1].getText().toString());

因此在onClick()内,使用上面的代码来实现您想在每种情况下应用的逻辑:

case R.id.Button2:
    textViews[X].setText(buttons[X].getText().toString());
    break;

修改
如果您只想设置第一个TextView的文本,我想这是textViews[0]
那么您就不需要switch语句:

@Override
public void onClick(View v) {
    Button button = (Button) v;
    textViews[0].setText(button.getText().toString());
}

Edit2
如果要顺序设置TextView s的文本

@Override
public void onClick(View v) {
    Button button = (Button) v;
    for (int i = 0; i < textViews.length; i++) {
        if (textViews[i].getTag() == null) {
            textViews[i].setText(button.getText().toString());
            textViews[i].setTag("0");
            break;
        }
    }
}