OnClickListener button not working

I have a button when I click a dialog box. The problem is that setOnClickListener not responding to my button.

Here is my Java code:

 Button b1 = (Button) findViewById(R.id.button1); b1.setOnClickListener(usage); b2 = (Button) findViewById(R.id.button2); b2.setOnClickListener(price); b3 = (Button) findViewById(R.id.button3); b3.setOnClickListener(new OnClickListener() { public void onClick(View v) { System.out.println("Button3"); mainDialog3 = new Dialog(Advice.this); mainDialog3.setContentView(R.layout.fuel); mainDialog3.setCancelable(true); mainDialog3.show(); Window window = mainDialog3.getWindow(); window.setLayout(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); } }); private View.OnClickListener usage = new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub System.out.println("Button1"); Toast.makeText(getApplicationContext(), "Button 1", Toast.LENGTH_LONG).show(); mainDialog1 = new Dialog(Advice.this); mainDialog1.setContentView(R.layout.usage); mainDialog1.setCancelable(true); mainDialog1.show(); Window window = mainDialog1.getWindow(); window.setLayout(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); } }; private View.OnClickListener price = new View.OnClickListener() { public void onClick(View v) { System.out.println("Button2"); mainDialog2 = new Dialog(Advice.this); mainDialog2.setContentView(R.layout.price); mainDialog2.setCancelable(true); mainDialog2.show(); Window window = mainDialog2.getWindow(); window.setLayout(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); } }; 

The problem is button 1 ( b1 ). The remaining buttons ( b2 , b3 ) work fine. Here is my XML:

 <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_alignRight="@+id/button7" android:text="Edit" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/button3" android:layout_alignLeft="@+id/button1" android:text="Edit" /> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/textView8" android:layout_alignLeft="@+id/button2" android:text="Edit" /> 
+4
source share
2 answers

You do not need to configure the click listener manually in the code. The easiest way to do this is to add a callback to XML.

Like this:

 <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_alignRight="@+id/button7" android:onClick="foo" android:text="Edit" /> 

If you use eclipse with android tools, you can set this property directly in the XML editor. Then you define the function in your code, named after the Click property, and it will be called automatically.

 public void foo(View oView) { Button cklicked ... } 

You can also set up a dynamic click, but you only need it if you create buttons on the fly, like this:

  ImageButton button = (ImageButton) findViewById(R.id.list_manager_add); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { button pressed... } }); 
+1
source

try b1.setOnClickListener(usage); instead of b1.setOnClickListener(usage); in your code it will work. brother

-eight
source

Source: https://habr.com/ru/post/1488415/


All Articles