O que está Errado nesse codigo: (((ImageButton)v).getImageResource().equals())

8 respostas
R

Eu quero que equals fique nenhuma image
Quando não tive nenhuma ImageResource fazer a função
O código é esse;

package com.example.myapplication;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.ImageButton;

import android.widget.TextView;

import android.widget.Toast;

import com.example.myapplication.R;

public class JogoVx extends Activity {

private final String QUADRADO = quadrado ;

private final String BOLA = @drawable/bola ;

private final String XIS = @drawable/x ;

private String lastPlay = @drawable/bola ;

private View view;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setView(getLayoutInflater().inflate(R.layout.jogovx, null));
setContentView( getView() );
}
public void clickQuadrado(View v) {
  
  if (((ImageButton)v).getImageResource().equals()) {
  if(lastPlay.equals(BOLA)) {
  ((ImageButton)v).setImageResource(R.drawable.x);
  setLastPlay( XIS ); 
  } else { ((ImageButton)v).setImageResource(R.drawable.bola);
  setLastPlay( BOLA );
  }
  } else  { Toast.makeText(getView().getContext(),"Já jogaram nesse quadrado", Toast.LENGTH_LONG).show();
    }
    }






public ImageButton getQuadrado(int tagNum) {
return (ImageButton)getView().findViewWithTag( QUADRADO+tagNum );
  }

public View getView() {
  return view;
  }
  public void setView(View view) {
    this.view = view;
    }
    
    public String getLastPlay() {
      return lastPlay;
    }
    
    public void setLastPlay(String lastPlay) {
      this.lastPlay = lastPlay;
    }

}
Vocês entenderam o que eu quero fazer ? Se não entenderam, me perguntem.

8 Respostas

darlan_machado

Isso nunca vai funcionar, pois o método equals exige que você passe um parâmetro do tipo Object (qualquer objeto).
Se a ideia é comparar com nulo, que seria o equivalente a nenhum objeto, então, faça assim

null == getImageResource()

Não há necessidade de cast, pois, se getImageResource é nulo, você nunca vai conseguir transformar em um ImageButton

R
<a class="mention" href="/u/darlan_machado">@darlan_machado</a>

Eu quero que nesse ImageButton ele identifique que .getImageResource() é nulo mas quando coloco ele não funciona.

Era para copiar

(null == getImageResource())

No lugar (((ImageButton)v).getImageResource().equals())

Se for não funcionou

Bom ,eu não entendi o que você explicou. Tenta explicar com exemplo.

Obrigado pola atençao.
darlan_machado

Olha, leia a documentação e entenda, ok?

Sobre não funcionar, realmente foi bola fora minha.
O cast que você faz é justamente para obter o método getImageResource
Então, ficaria assim

if(null == ((ImageButton) v).getImageResource()) {
R

@darlan_machado eu estou com problema com o método getImageResource()
Da erro; não encontrado o simbolo getImageResource()
Você conhece outro código que faça a mesma função.
já tentei colocar o seu código mas não deu certo aparece o mesmo erro
É assim se estiver sem image executar o código se não executar o outro código.
Obrigado por sua atenção.

darlan_machado

Se está dando erro é por que alguma coisa tá errada e a mensagem que está sendo exibida deve ajudar a entender e a corrigir.
O problema é que eu não consigo adivinhar, pois você não coloca código, nem mensagem, nem nada, só fica perguntando com informações desencontradas e pela metade.
Assim fica bem complicado

R
<a class="mention" href="/u/darlan_machado">@darlan_machado</a>

error:cannot find symbol

if (null == ((ImageButton) v).getImageResource())

^

symbol:   method getImageResource()

location: class ImageButton

É esse mensagem que você quer?
darlan_machado

O erro é apresentado por que, realmente, não existe este método.
Olhar a documentação é uma excelente maneira de aprender

R

@darlan_machado você me ajudou muito. Obrigado.
Era só colocar (null == ((ImageButton) v).getDrawable())
Valeu.

Criado 11 de julho de 2018
Ultima resposta 11 de jul. de 2018
Respostas 8
Participantes 2