Android Button Onclick

后端 未结 9 1992
猫巷女王i
猫巷女王i 2020-11-29 03:41

OK I\'m new to android dev\'s and Java, so I\'m having problems with on click method here\'s my code. I know I\'ve gotta be close, thanks in advance. All I want my button to

相关标签:
9条回答
  • 2020-11-29 04:17

    You need to make the same method name both in layout XML and java code.

    If you use android:onClick="setLogin" then you need to make a method with the same name, setLogin:

    // Please be noted that you need to add the "View v" parameter
    public void setLogin(View v) {
    
    }
    

    ADVICE:
    Do not mix layout with code by using android:onClick tag in your XML. Instead, move the click method to your class with OnClickListener method like:

    Button button = (Button) findViewById(R.id.button1);
    button.setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
        // TODO Auto-generated method stub
      }
     });
    

    Make a layout just for layout and no more. It will save your precious time when you need to refactoring for Supporting Multiple Screens.

    0 讨论(0)
  • 2020-11-29 04:20

    Method 1:

    public void onClick(View v) {
              Intent i = new Intent(currentActivity.this, SecondActivity.class);
             startActivty(i);
            }
    

    Method 2:

    Button button = (Button) findViewById(R.id.mybutton);
     button.setOnClickListener(new OnClickListener() {
    
        public void onClick(View v) {
             Toast.makeText(this, "Button Clicked", Toast.LENGTH_LONG).show();
    
        }
     });
    
    0 讨论(0)
  • 2020-11-29 04:20

    Here is some sample code of how to add a button named Add. You should declare the variable as a member variable, and the naming convention for member variables is to start with the letter "m".

    Hit Alt+Enter on the classes to add the missing references.

    Add this to your activity_main.xml:

     <Button
            android:id="@+id/buttonAdd"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ADD"
         />
    

    Add this to your MainActivity.java:

    public class MainActivity extends AppCompatActivity {
    
        Button mButtonAdd; 
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mButtonAdd = findViewById(R.id.buttonAdd);
    
            mButtonAdd.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    // do something here
                }
            });
        }
    }
    
    0 讨论(0)
  • 2020-11-29 04:23

    If you write like this in Button tag in xml file : android:onClick="setLogin" then

    Do like this:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    
    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/btn"
        android:onClick="onClickBtn" />
    
    </LinearLayout>
    

    and in Code part:

    public class StartUpActivity extends Activity 
    {
        public void onCreate(Bundle savedInstanceState) 
        {
           super.onCreate(savedInstanceState);
           setContentView(R.layout.main);    
        }
    
        public void onClickBtn(View v)
        {
            Toast.makeText(this, "Clicked on Button", Toast.LENGTH_LONG).show();
        } 
    }
    

    and no need all this:

     Button button = (Button) findViewById(R.id.button1);
     button.setOnClickListener(new OnClickListener() {
    
        public void onClick(View v) {
            // TODO Auto-generated method stub
    
        }
     });
    

    Check it once;

    0 讨论(0)
  • 2020-11-29 04:27

    Use Layout inflater method in your button click. it will change your current .xml to targeted .xml file. Google for layout inflater code.

    0 讨论(0)
  • 2020-11-29 04:31

    There are two solutions for this are :-

    (1) do not put onClick in xml

    (2) remove

    button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
                // TODO Auto-generated method stub
        }
    });
    

    and put

    public void setLogin(View v) {
        // Your code here
    }
    
    0 讨论(0)
提交回复
热议问题