cnfw
cnfw

Reputation: 800

How do you make a new activity start when a button is clicked?

I already know how to start a one new activity when you click a button, but I have three buttons on the one layout. And I want each of the three buttons on that ONE activity to link to three other activities.

I have on the activity I have called 'main', Button 1 which is called services and I want to link it to the services activity. Button 2 which is called Search and I want it to go to the Search activity and thirdly 'map' which I want to link to the map activity.

Can someone help me do this please? Thanks

EDIT:Also, I'm a beginner with Android coding, could you explain in a little bit more detail please?

Upvotes: 2

Views: 770

Answers (4)

Karthik
Karthik

Reputation: 747

which is very easy to start a new activity when the button is clicked. I have given the example for this.

// R.id.btnAdd -> which is present in your layout page
Button btnStart = (Button) findViewById(R.id.btnAdd); // declare button
// declare listener evernt for button
OnClickListener listener = new OnClickListener() {

   @Override
   public void onClick(View v) {
        // declare the Intent for moving another activity
        Intent view = new Intent(YourCurrentClassName.this,
        anotherClassName.class);
        // startActivity is used to navigating the view
        startActivity(view);
    }
};
// set the listener evernt to button
btnStart.setOnClickListener(listener);

Upvotes: 0

Seva Alekseyev
Seva Alekseyev

Reputation: 61396

Tie an onclick listener to all three buttons. In the listener, retrieve the ID of the button. Make a variable of type Class. Depending on the value of the button ID, initialize it to the class of the activity to invoke. Then construct an Intent for that class, and call startActivity().

EDIT for hawaii.five-0: here's how I'd do it:

@Override
public void onClick(View view) {
   Class c = null;
   switch (view.getId()) {
      case R.id.serviceBtn:
         c = ServiceActivity.class;
         break;
      case R.id.searchBtn:
         c = SearchActivity.class;
         break;
      case R.id.mapBtn:
         c = MapActivity.class;
         break;
   } 
   Intent i = new Intent(YourActivity.this, c);
   startActivity(i);
}

EDIT2:

class CurrentActivity extends Activity
    implements OnClickListener  
{
    void onCreate(Bundle b)
    {
        //Other initialization goes here...

        ((Button)findViewById(R.id.MyButton1)).setOnClickListener(this);
        ((Button)findViewById(R.id.MyButton2)).setOnClickListener(this);
        ((Button)findViewById(R.id.MyButton3)).setOnClickListener(this);
    }

}

Upvotes: 1

Simon Dorociak
Simon Dorociak

Reputation: 33515

So where is problem? Just set that your class will implements View.OnClickListener and override onClick() method a you got it.

public class MainActivity extends Activity implements View.OnClickListener {
   // body
}

@Override
public void onClick(View view) {
   switch (view.getId()) {

      case R.id.serviceBtn:
         Intent serviceIntent = new Intent(this, ServiceActivity.class);
         startActivity(serviceIntent);
         break;
      case R.id.searchBtn:
         Intent searchIntent = new Intent(this, SearchActivity.class);
         startActivity(searchIntent);
         break;
      case R.id.mapBtn:
         Intent mapIntent = new Intent(this, MapActivity.class);
         startActivity(mapIntent);
         break;
   } 
}

Upvotes: 3

Hardik
Hardik

Reputation: 1411

Its very easy dear. Just put this code on button click event

Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
CurrentActivity.this.startActivity(myIntent);

Upvotes: 0

Related Questions