Приложение для игры в крестики-нолики написал. Сделал так чтобы можно было засчитать победу. В коде вроде все понятно, дело в том что после победы не нажатые ImageView должны становиться некликабельными, в операторах if увидите как я это сделал. Суть в том что по нажатию на button все ImageView должны вновь стать активными (но все равно некоторые некликабельны), что делать, где баг ?
package com.example.user.tic_tac_toe;
import android.graphics.Color;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
TextView text;
boolean bool = true;
ImageView image_1, image_2, image_3, image_4, image_5, image_6, image_7,
image_8, image_9;
Button button;
int im1, im2, im3, im4, im5, im6, im7, im8, im9;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton)
findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action",
Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
im1 = im2 = im3 = im4 = im5 = im6 = im7 = im8 = im9 = 0;
text = (TextView) findViewById(R.id.textView);
button = (Button) findViewById(R.id.button);
image_1 = (ImageView) findViewById(R.id.image_1);
image_1.setImageDrawable(getResources().getDrawable(R.drawable.if_icon));
image_2 = (ImageView) findViewById(R.id.image_2);
image_2.setImageDrawable(getResources().getDrawable(R.drawable.if_icon));
image_3 = (ImageView) findViewById(R.id.image_3);
image_3.setImageDrawable(getResources().getDrawable(R.drawable.if_icon));
image_4 = (ImageView) findViewById(R.id.image_4);
image_4.setImageDrawable(getResources().getDrawable(R.drawable.if_icon));
image_5 = (ImageView) findViewById(R.id.image_5);
image_5.setImageDrawable(getResources().getDrawable(R.drawable.if_icon));
image_6 = (ImageView) findViewById(R.id.image_6);
image_6.setImageDrawable(getResources().getDrawable(R.drawable.if_icon));
image_7 = (ImageView) findViewById(R.id.image_7);
image_7.setImageDrawable(getResources().getDrawable(R.drawable.if_icon));
image_8 = (ImageView) findViewById(R.id.image_8);
image_8.setImageDrawable(getResources().getDrawable(R.drawable.if_icon));
image_9 = (ImageView) findViewById(R.id.image_9);
image_9.setImageDrawable(getResources().getDrawable(R.drawable.if_icon));
final View.OnClickListener onClickListener = new
View.OnClickListener() {
@Override
public void onClick(View view) {
switch(view.getId()){
case R.id.image_1:
if(bool == true){
image_1.setImageResource(R.drawable.if_cross);
image_1.setColorFilter(Color.RED);
bool = false;
image_1.setClickable(false);
im1=1;
}else{
image_1.setImageResource(R.drawable.if_circle);
image_1.setColorFilter(Color.BLUE);
bool = true;
image_1.setClickable(false);
im1=2;
}break;
case R.id.image_2:
if(bool == true){
image_2.setImageResource(R.drawable.if_cross);
image_2.setColorFilter(Color.RED);
bool = false;
image_2.setClickable(false);
im2=1;
}else{
image_2.setImageResource(R.drawable.if_circle);
image_2.setColorFilter(Color.BLUE);
bool = true;
image_2.setClickable(false);
im2=2;
}break;
case R.id.image_3:
if(bool == true){
image_3.setImageResource(R.drawable.if_cross);
image_3.setColorFilter(Color.RED);
bool = false;
image_3.setClickable(false);
im3=1;
}else{
image_3.setImageResource(R.drawable.if_circle);
image_3.setColorFilter(Color.BLUE);
bool = true;
image_3.setClickable(false);
im3=2;
}break;
case R.id.image_4:
if(bool == true){
image_4.setImageResource(R.drawable.if_cross);
image_4.setColorFilter(Color.RED);
bool = false;
image_4.setClickable(false);
im4=1;
}else{
image_4.setImageResource(R.drawable.if_circle);
image_4.setColorFilter(Color.BLUE);
bool = true;
image_4.setClickable(false);
im4=2;
}break;
case R.id.image_5:
if(bool == true){
image_5.setImageResource(R.drawable.if_cross);
image_5.setColorFilter(Color.RED);
bool = false;
image_5.setClickable(false);
im5=1;
}else{
image_5.setImageResource(R.drawable.if_circle);
image_5.setColorFilter(Color.BLUE);
bool = true;
image_5.setClickable(false);
im5=2;
}break;
case R.id.image_6:
if(bool == true){
image_6.setImageResource(R.drawable.if_cross);
image_6.setColorFilter(Color.RED);
bool = false;
image_6.setClickable(false);
im6=1;
}else{
image_6.setImageResource(R.drawable.if_circle);
image_6.setColorFilter(Color.BLUE);
bool = true;
image_6.setClickable(false);
im6=2;
}break;
case R.id.image_7:
if(bool == true){
image_7.setImageResource(R.drawable.if_cross);
image_7.setColorFilter(Color.RED);
bool = false;
image_7.setClickable(false);
im7=1;
}else{
image_7.setImageResource(R.drawable.if_circle);
image_7.setColorFilter(Color.BLUE);
bool = true;
image_7.setClickable(false);
im7=2;
}break;
case R.id.image_8:
if(bool == true){
image_8.setImageResource(R.drawable.if_cross);
image_8.setColorFilter(Color.RED);
bool = false;
image_8.setClickable(false);
im8=1;
}else{
image_8.setImageResource(R.drawable.if_circle);
image_8.setColorFilter(Color.BLUE);
bool = true;
image_8.setClickable(false);
im8=2;
}break;
case R.id.image_9:
if(bool == true){
image_9.setImageResource(R.drawable.if_cross);
image_9.setColorFilter(Color.RED);
bool = false;
image_9.setClickable(false);
im9=1;
}else{
image_9.setImageResource(R.drawable.if_circle);
image_9.setColorFilter(Color.BLUE);
bool = true;
image_9.setClickable(false);
im9=2;
}break;
}
if(im1 == 1 && im2 == 1 && im3 == 1){
text.setText("RED WIN");
text.setTextColor(Color.RED);
image_4.setClickable(false);
image_5.setClickable(false);
image_6.setClickable(false);
image_7.setClickable(false);
image_8.setClickable(false);
image_9.setClickable(false);
}
if(im4 == 1 && im5 == 1 && im6 == 1){
text.setText("RED WIN");
text.setTextColor(Color.RED);
image_1.setClickable(false);
image_2.setClickable(false);
image_3.setClickable(false);
image_7.setClickable(false);
image_8.setClickable(false);
image_9.setClickable(false);
}
if(im7 == 1 && im8 == 1 && im9 == 1){
text.setText("RED WIN");
text.setTextColor(Color.RED);
image_4.setClickable(false);
image_5.setClickable(false);
image_6.setClickable(false);
image_3.setClickable(false);
image_2.setClickable(false);
image_1.setClickable(false);
}
if(im1 == 1 && im4 == 1 && im7 == 1){
text.setText("RED WIN");
text.setTextColor(Color.RED);
image_2.setClickable(false);
image_3.setClickable(false);
image_5.setClickable(false);
image_6.setClickable(false);
image_8.setClickable(false);
image_9.setClickable(false);
}
if(im2 == 1 && im5 == 1 && im8 == 1){
text.setText("RED WIN");
text.setTextColor(Color.RED);
image_1.setClickable(false);
image_9.setClickable(false);
image_3.setClickable(false);
image_4.setClickable(false);
image_6.setClickable(false);
image_7.setClickable(false);
}
if(im3 == 1 && im6 == 1 && im9 == 1){
text.setText("RED WIN");
text.setTextColor(Color.RED);
image_4.setClickable(false);
image_5.setClickable(false);
image_7.setClickable(false);
image_8.setClickable(false);
image_1.setClickable(false);
image_2.setClickable(false);
}
if(im1 == 1 && im5 == 1 && im9 == 1){
text.setText("RED WIN");
text.setTextColor(Color.RED);
image_4.setClickable(false);
image_2.setClickable(false);
image_6.setClickable(false);
image_7.setClickable(false);
image_8.setClickable(false);
image_3.setClickable(false);
}
if(im3 == 1 && im5 == 1 && im7 == 1){
text.setText("RED WIN");
text.setTextColor(Color.RED);
image_4.setClickable(false);
image_2.setClickable(false);
image_6.setClickable(false);
image_1.setClickable(false);
image_8.setClickable(false);
image_9.setClickable(false);
}
if(im1 == 2 && im2 == 2 && im3 == 2){
text.setText("BLUE WIN");
text.setTextColor(Color.BLUE);
image_4.setClickable(false);
image_5.setClickable(false);
image_6.setClickable(false);
image_7.setClickable(false);
image_8.setClickable(false);
image_9.setClickable(false);
}
if(im4 == 2 && im5 == 2 && im6 == 2){
text.setText("BLUE WIN");
text.setTextColor(Color.BLUE);
image_1.setClickable(false);
image_2.setClickable(false);
image_3.setClickable(false);
image_7.setClickable(false);
image_8.setClickable(false);
image_9.setClickable(false);
}
if(im7 == 2 && im8 == 2&& im9 == 2){
text.setText("BLUE WIN");
text.setTextColor(Color.BLUE);
image_4.setClickable(false);
image_5.setClickable(false);
image_6.setClickable(false);
image_3.setClickable(false);
image_2.setClickable(false);
image_1.setClickable(false);
}
if(im1 == 2 && im4 == 2 && im7 == 2){
text.setText("BLUE WIN");
text.setTextColor(Color.BLUE);
image_2.setClickable(false);
image_3.setClickable(false);
image_5.setClickable(false);
image_6.setClickable(false);
image_8.setClickable(false);
image_9.setClickable(false);
}
if(im2 == 2 && im5 == 2 && im8 == 2){
text.setText("BLUE WIN");
text.setTextColor(Color.BLUE);
image_1.setClickable(false);
image_9.setClickable(false);
image_3.setClickable(false);
image_4.setClickable(false);
image_6.setClickable(false);
image_7.setClickable(false);
}
if(im3 == 2 && im6 == 2 && im9 == 2){
text.setText("BLUE WIN");
text.setTextColor(Color.BLUE);
image_4.setClickable(false);
image_5.setClickable(false);
image_7.setClickable(false);
image_8.setClickable(false);
image_1.setClickable(false);
image_2.setClickable(false);
}
if(im1 == 2 && im5 ==2 && im9 == 2){
text.setText("BLUE WIN");
text.setTextColor(Color.BLUE);
image_4.setClickable(false);
image_2.setClickable(false);
image_6.setClickable(false);
image_7.setClickable(false);
image_8.setClickable(false);
image_3.setClickable(false);
}
if(im3 == 2 && im5 == 2 && im7 == 2){
text.setText("BLUE WIN");
text.setTextColor(Color.BLUE);
image_4.setClickable(false);
image_2.setClickable(false);
image_6.setClickable(false);
image_1.setClickable(false);
image_8.setClickable(false);
image_9.setClickable(false);
}
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.button:
bool = true;
image_1.setImageResource(R.drawable.if_icon);
image_1.setClickable(true);
image_2.setImageResource(R.drawable.if_icon);
image_2.setClickable(true);
image_3.setImageResource(R.drawable.if_icon);
image_3.setClickable(true);
image_4.setImageResource(R.drawable.if_icon);
image_4.setClickable(true);
image_5.setImageResource(R.drawable.if_icon);
image_5.setClickable(true);
image_6.setImageResource(R.drawable.if_icon);
image_6.setClickable(true);
image_7.setImageResource(R.drawable.if_icon);
image_7.setClickable(true);
image_8.setImageResource(R.drawable.if_icon);
image_8.setClickable(true);
image_9.setImageResource(R.drawable.if_icon);
image_9.setClickable(true);
image_1.setColorFilter(Color.BLACK);
image_2.setColorFilter(Color.BLACK);
image_3.setColorFilter(Color.BLACK);
image_4.setColorFilter(Color.BLACK);
image_5.setColorFilter(Color.BLACK);
image_6.setColorFilter(Color.BLACK);
image_7.setColorFilter(Color.BLACK);
image_8.setColorFilter(Color.BLACK);
image_9.setColorFilter(Color.BLACK);
}
}
});
}
};
image_1.setOnClickListener(onClickListener);
image_2.setOnClickListener(onClickListener);
image_3.setOnClickListener(onClickListener);
image_4.setOnClickListener(onClickListener);
image_5.setOnClickListener(onClickListener);
image_6.setOnClickListener(onClickListener);
image_7.setOnClickListener(onClickListener);
image_8.setOnClickListener(onClickListener);
image_9.setOnClickListener(onClickListener);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
1) присваивание
button.setOnClickListener(new View.OnClickListener() {}
Находится в слушателе каждого image
final View.OnClickListener onClickListener
Что явно не правильно. 2) Вообще не нужные строки, скорее всего из-за них и не работает.
switch (view.getId()){
case R.id.button:
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
В textarea, при вставке оставить только цифры и поделить их по 10 знаковПосле 10 знаков поставить запятую при этом если число начинается на 7 или...
Когда я пытаюсь использовать windowaddEventListener('onload', func) и ему подобные, то на странице ничего не происходит, но при этом, когда я пишу, к примеру,...
Привет я junior-java приходится работать с JSF в нём я как в балете(никак)