Обновить вид текста как пользователь Нажмите на него - PullRequest
0 голосов
/ 22 февраля 2012

У меня есть 8 TextView в моем Linearlayout, и я пытаюсь добиться, как только пользователь нажимает на любой TextView, он должен обновляться со следующим Textview под ним ... Я пытаюсь сделать простую игру, где будет Imageотображается случайным образом, и пользователь должен найти, что имя изображения из списка отображается как разные 8 TextView ... например: если есть 8 TextView с List Dog, Cat, Bike, Horse, Cow и т. д. и сказать, что изображение Cat показалотогда я хочу, чтобы cat отключил, теперь каждое текстовое представление должно обновляться на одну строку выше, чтобы я мог добавить больше представлений в конце ...

Надеюсь, я не сбиваю с толку, потому что я запутался здесь ...

1 Ответ

0 голосов
/ 22 февраля 2012

Если вы поместите все TextViews в массив или список, то это станет простой манипуляцией с массивом:

public void onClick(View pressed){ 
    boolean tvFound = false; //have we found the clicked tv yet?
    for(int i=0;i<mTextViews.length;i++){ //loop through all tvs
        if(pressed.getId() == mTextViews[i]){ //if this is the tv that was clicked on
            tvFound = true; 
        }
        if(tvFound){ // if we have found the tv that was clicked on
            if(i<mTextViews.length-1){ //if we arent on the last tv
                mTextViews[i].setText(mTextviews[i+1].getText()); //then replace txt with next tvs text
            }else{ //if we ARE on the last tv
                mTextViews[i].setText(""); //replace text with nothing
            }
        }
    }
}

Я также хочу отметить, что если вы не хотите перебирать всеTextViews, чтобы найти тот, на котором щелкнули, вы можете сопоставить ResId каждого TextView с его индексом в массиве, затем вы можете манипулировать только необходимыми TextViews.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...