切换到下一个textview

时间:2014-03-28 20:12:45

标签: android eclipse button textview

我正在制作应用程序并且它有15个按钮和6个textview' s当我按第一个按钮将第一个textview的值(值为"")改为某个时(我想要的)例如,第一个问题。但问题是当我按下第二个按钮时,如果第一个textview已经设置为某个值,则将第二个textview设置为第二个值。

如果您需要其他内容,请在评论中提出(抱歉英语不好)

当我按下第二个按钮

时,我正在做的事情(这是在onclick下)
if(textview1.equals("1")){
            textview2.setText("2");}
            else if (textview1.equals("")){
            textview1.setText("2");
            }

3 个答案:

答案 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");
}