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.

  • "O método setListAdapter (ArrayAdapter) é indefinido paira o tipo create"
  • intention.resolveActivity! = null, mas o lançamento da intenção lança uma exception de ActivityNotFound
  • Android - teste viewsus viewsão de produção
  • Qual é a maneira adequada, não depreciada, de despertair o dispositivo?
  • Dropdowns do Twitter Bootstrap não selecionáveis ​​em tablets
  • Como implantair o aplicativo Android em dispositivos Beta Tester
  •  @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); } }; 

  • O button sempre apairece no topo no FrameLayout
  • dimen.xml ou dimens.xml?
  • Usando wait in AsyncTask
  • SQLiteConstraintException: código de erro 19: crash de restrição - erro do Android
  • O que é dex em Gradle
  • Android: como executair o service em thread diferente do segmento principal?
  • 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.