user5256621
user5256621

Reputation:

How to create two android button using android studio

I am just getting into android apps, and I have yet to find a tutorial that explains in detail of how to do anything.Can someone show me the code on how to create two buttons (sign in and sign up) in android ?

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        loginButton=(Button)findViewById(R.id.button);
        button.setOnClickListener(LogInListener);

        signUpButton=(Button)findViewById(R.id.button2);
        button2.setOnClickListener(SignUpListener);
    }

private OnClickListener LogInListener=new OnClickListener()
    {
        public void onClick(View v)
        {

        }
    }

Is this the correct way to implement? thanks

activity_main.xml

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Log In"
        android:id="@+id/button"
        android:layout_marginTop="61dp"
        android:layout_below="@+id/textView3"
        android:layout_toStartOf="@+id/button2"
        android:layout_toLeftOf="@+id/button2" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Sign UP"
        android:id="@+id/button2"
        android:layout_alignTop="@+id/button"
        android:layout_alignLeft="@+id/editText2"
        android:layout_alignStart="@+id/editText2"
        android:layout_marginLeft="48dp"
        android:layout_marginStart="48dp" />

Upvotes: 0

Views: 2025

Answers (3)

Yodism
Yodism

Reputation: 247

If you're new at Android Development some things are just confusing. I would create buttons by doing this:

  1. Define Button in your XML File.
  2. Add Listener to your Button.
  3. Don't forget to add id attribute to your Button.

i would do it this way.

LAYOUT XML FILE

<Button
    android:id="@+id/buttonOne"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button One" />

<Button
    android:id="@+id/buttonTwo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button 2"  />

MainActivity.java

public class MainActivity extends AppCompatActivity implements View.onClickListener {

private Button buttonOne;
private Button buttonTwo;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    buttonOne = (Button) findViewById(R.id.buttonOne); // id located in your xml file
    buttonOne.setOnClickListener(this);
    buttonTwo = (Button) findViewById(R.id.buttonTwo);
    buttonTwo.setOnCliclListener(this);
}

    private void onClick(View v){
        switch(v.getId()) {
            case r.id.buttonOne: {
                // action when buttonOne is clicked
                break;
            }
            case r.id.buttonTwo: {
                // action when buttonTwo is clicked
                break;
            }
        }
    }

Upvotes: 1

RamanSB
RamanSB

Reputation: 1172

EDIT:

Now that you have edited your question, you just need to do one more thing to declare your Buttons as instance variables. Declare them outside of all methods (onCreate) but inside the mainActivity.

PRE EDIT:

I'll show you what your main activity (Java class) and what your layout (XML file) should look like:


Main Activity:

public class MainActivity extends AppCompatActivity {

Button signIn, signUp;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    signIn = (Button) findViewById(R.id.'idOfButtonFromXMLLayout');
    signUp = (Button) findViewById(R.id.'idOfButtonFromXMLLayout');

    //Looking at my XML code, the signIn id would be R.id.signInButton
}

The findViewById method is inherited from the AppCompatActivity class, all activities extend the AppCompatActivity class. Older versions of android just extended the Activity class.

The findViewById method takes an int parameter more specifically an id.

The reason a cast is required is because the findViewById method as you would assume returns a type of View, this is then casted to a button.


XML Layout File:

   <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="@dimen/activity_vertical_margin"
        tools:context=".MainActivity">

    <Button
        android:id="@+id/signInButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Sign In" 
        <!-- Complete Layout Details-->               />

    <Button
        android:id="@+id/signUpButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/signUpText"
        <!-- Complete Layout Details-->   />

</RelativeLayout>

In the code above I have represented the text of the buttons in two ways...

1) Hard-coded string "Sign In"

2) String resource "@string/signUpText

It is good practice to change your hard-coded strings to the latter format.

Upvotes: 1

Mazino
Mazino

Reputation: 562

To create a button, you have to code in your xml file, or drag it in your Design view which will do that for you

enter image description here

Which will auto-magicly do this for you, with auto generated values.

-to name your button edit android: text

-edit android: id to edit the "key" that connects your button design in xml to java

enter image description here

If you want to use your button for things like onclicklisteners and such, you will need to "import" it into your java code, like so. The android: id ="@/<>value"and findViewById(R.id.) should be the same (though its not in the photos)

enter image description here

Now simply do this again for every button you want and change the values to your needs. Hope I helped.

Upvotes: 0

Related Questions