我正在制作应用程序并且它有15个按钮和6个textview' s当我按第一个按钮将第一个textview的值(值为"")改为某个时(我想要的)例如,第一个问题。但问题是当我按下第二个按钮时,如果第一个textview已经设置为某个值,则将第二个textview设置为第二个值。
如果您需要其他内容,请在评论中提出(抱歉英语不好)
当我按下第二个按钮
时,我正在做的事情(这是在onclick下)if(textview1.equals("1")){
textview2.setText("2");}
else if (textview1.equals("")){
textview1.setText("2");
}
答案 0 :(得分:1)
由于您关注文本视图中的文本,因此您应该使用对象的getText方法:
if( textview1.getText().equals("1") ){ // Edited
textview2.setText("2");
} else if (textview1.getText().equals("")){ //Edited
textview1.setText("2");
}
答案 1 :(得分:1)
听起来你想要显示最后6个按钮。
将所有按下的按钮存储在大小为6的List
(即LinkedList
)中。最初,它将为空。
然后,无论何时按下任何按钮,都要做两件事:
1)将其添加到List
并删除旧元素,如果大小超过6
2)从List
设置按钮值。
第二步可以这样实现:
// all TextViews should be in a list
private List<TextView> textViews;
// declare as field
private List<String> memoryQueue = new ArrayList<String>();
public void update() {
//set fields for the pressed buttons
for (int i=0; i<6 && i<memoryQueue.size(); i++) {
String text = memoryQueue.get(i);
textViews.get(i).setText(text);
}
// set empty fields
for (int i = memoryQueue.size(); i<6; i++) {
textViews.get(i).setText("");
}
}
此代码段假定您将TextView
存储在List
中。
跟踪最后六个按钮的最简单方法:
public void buttonPressed(Button button) {
//get text based on your button
String text = button.getText();
if (memoryQueue.contains(text)) {
return;
}
memoryQueue.add(text);
if (memoryQueue.size() > 6) {
memoryQueue.remove(0);
}
}
答案 2 :(得分:0)
首先,您必须使用String
方法从TextView
获取getText()
文字,然后您可以将String
与另一个String
进行比较。现在,改变你的状况如下......
if(textview1.getText().toString().equals("1")){
textview2.setText("2");}
else if (textview1.getText().toString().equals("")){
textview1.setText("2");
}