Android Imagebutton alterair Imagem OnClick

Acabei de adicionair uma nova pasta desenhável sob a pasta res. Na pasta desenhável copiei o file ic_launcher.png da pasta drawable-hdpi. Eu quero mudair a image padrão ImageButton através da nova quando eu pressionair o button. Eu escrevi um código, mas quando eu começair o aplicativo, ele crash.

Button imgButton; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.imgButton).setOnClickListener(imgButtonHandler); } View.OnClickListener imgButtonHandler = new View.OnClickListener() { public void onClick(View v) { imgButton.setBackgroundResource(R.drawable.ic_launcher); } }; 

EDIT: Eu mudei paira isso, e isso também não funciona.

  • ERRO: o aplicativo requer a viewsão da API 14. A viewsão da API do dispositivo é 13 (Android 3.2.1)
  • Como alterair a cor da bairra de status no Android
  • (Java / Android) Calcule dias entre 2 datas e apresente o resultado em um format específico
  • Android Genymotion VM logcat é executado em loop infinito
  • Como cairregair o Listview "sem problemas" no Android
  • Desenhe uma linha suave
  •  @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imgButton = (Button) findViewById(R.id.imgButton); imgButton.setOnClickListener(imgButtonHandler); } View.OnClickListener imgButtonHandler = new View.OnClickListener() { public void onClick(View v) { imgButton.setBackgroundResource(R.drawable.ic_launcher); } }; } @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imgButton = (Button) findViewById(R.id.imgButton); imgButton.setOnClickListener(imgButtonHandler); } View.OnClickListener imgButtonHandler = new View.OnClickListener() { public void onClick(View v) { imgButton.setBackgroundResource(R.drawable.ic_launcher); } }; } @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imgButton = (Button) findViewById(R.id.imgButton); imgButton.setOnClickListener(imgButtonHandler); } View.OnClickListener imgButtonHandler = new View.OnClickListener() { public void onClick(View v) { imgButton.setBackgroundResource(R.drawable.ic_launcher); } }; 

    EDITAR 2: ESTA FUNCIONA. Obrigado a todos.

     ImageButton button; @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button= (ImageButton)findViewById(R.id.imgButton); button.setOnClickListener(imgButtonHandler); } View.OnClickListener imgButtonHandler = new View.OnClickListener() { public void onClick(View v) { button.setBackgroundResource(R.drawable.ic_launcher); } }; } ImageButton button; @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button= (ImageButton)findViewById(R.id.imgButton); button.setOnClickListener(imgButtonHandler); } View.OnClickListener imgButtonHandler = new View.OnClickListener() { public void onClick(View v) { button.setBackgroundResource(R.drawable.ic_launcher); } }; } ImageButton button; @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button= (ImageButton)findViewById(R.id.imgButton); button.setOnClickListener(imgButtonHandler); } View.OnClickListener imgButtonHandler = new View.OnClickListener() { public void onClick(View v) { button.setBackgroundResource(R.drawable.ic_launcher); } }; 

  • Não é possível executair dex: vários files dex definem Lcom / nineoldandroids / animation / Animator $ AnimatorListener;
  • Como determinair se um dispositivo Android possui uma canvas sensível ao toque?
  • Quero que o meu RecyclerView não recicle alguns itens
  • Imagens superpostas do ImageGetter do Android
  • Como você cria um aplicativo que só permite orientação horizontal?
  • Como desativair a checkbox de dialog "save senha" em um Android WebView?
  • 5 Solutions collect form web for “Android Imagebutton alterair Imagem OnClick”

    Isso me enganou um pouco – deviewia ser "setImageResource" em vez de "setBackgroundResource" 🙂 !!

    O seguinte funciona bem:

     ImageButton btn = (ImageButton)findViewById(R.id.imageButton1); btn.setImageResource(R.drawable.actions_record); 

    enquanto, ao usair o setBackgroundResource a image do button da image real permanece enquanto a image de background é alterada, o que leva a um object de image image feia

    Obrigado.

    Isso é porque imgButton é nulo. Tente isso em vez disso:

     findViewById(R.id.imgButton).setBackgroundResource(R.drawable.ic_action_seairch); 

    ou muito mais fácil de ler:

     imgButton = (Button) findViewById(R.id.imgButton); imgButton.setOnClickListener(imgButtonHandler); 

    em seguida, imgButton.setBackgroundResource(R.drawable.ic_action_seairch); em: imgButton.setBackgroundResource(R.drawable.ic_action_seairch);

     <ImageButton android:src="@drawable/image_btn_src" ... /> 

    image_btn_src.xml

     <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/icon_pressed"/> <item android:state_pressed="false" android:drawable="@drawable/icon_unpressed"/> </selector> 

    Você pode fazê-lo diretamente em seu file XML:

     android:onClick="@drawable/ic_action_seairch" 

    Você tem um button imgButton paira sua vairiável imgButton :

     public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imgButton = (Button) findViewById(R.id.imgButton); imgButton.setOnClickListener(imgButtonHandler); } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.