2015-10-03 2 views
0

Я все еще новичок в android. Я пишу игру Tic Tac Toe в качестве практики. Я пытаюсь понять, как заменить представления, когда я нажимаю кнопку. У меня есть 9 кнопок в GridView. Когда пользователь нажимает один, я хочу, чтобы это изменилось на не-clickable TextView и обратно на кнопку, когда пользователь нажимает кнопку сброса внизу экрана. Я использую флаг, чтобы отслеживать ход игрока, чтобы он знать, стоит ли x или o. Возможно ли это, или я здесь растягиваюсь?Замена вида в Android onClick

+0

Сетка выполнена из кнопок или TextViews? –

+0

Это сетка кнопок – Jrawr

ответ

1

Скоро вы обнаружите, что на самом деле не так много вещей, которые растягивают его для Android.

Это, безусловно, возможно. Для каждой сетки в вашем GridView введите два элемента: Button и TextView. Измените видимость каждого. Другими словами, вы фактически не заменяете его другим - вы просто скрываете его и показываете другое.

Таким образом, вы должны были бы две вещи, как это:

<Button ... android:visibility="invisible"/> 
<TextView ... android:visibility="visibile"/> 

И оба этих match_parent, так что они заполняют каждую сетку и в основном как на верхней части друг друга.

Чтобы изменить видимость в коде:

button1.setVisibility(View.INVISIBLE); 
textView1.setVisibility(View.VISIBLE); 

Я пытаюсь дать вам как мало фактический код, как это возможно, так что вы играете с этим и написать его самостоятельно, но это должно определенно поставить вас в правильное направление. Дайте мне знать, если вам нужно больше руководства.

+0

Большое спасибо. Это очень полезно. – Jrawr

0

Вы можете сделать это двумя способами

  1. Вы можете поместить как кнопки и TextView в каждой сетке и обмена их видимость при нажатии на кнопку. Для этого вы можете установить свойства кнопки и текста в макете xml, и вам не нужно делать много программно

  2. Вы можете использовать кнопку самостоятельно и просто изменить внешний вид, изменив фоновый рисунок во время выполнения. Тогда вы можете сделать его unclickable, отключив его или изменить его фокусируемого свойство ложной

Вы даже можете использовать ImageView и просто изменить Drawable SRC и вывести его из строя по клике пользователя. Android довольно гибкий, и это даже не растягивается. Если вы дадите немного больше деталей, которые вы хотите достичь, я бы посоветовал, какое решение будет лучше всего подходит.

+0

Как бы вы сделали кнопку «unclickable»? – Jrawr

+0

Кнопка but = (кнопка) findViewById (R.id.button); but.setClickable (false); или but.setEnabled (false); –

Смежные вопросы