我有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;
}
}
}`
答案 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;
}
}
}