Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to open layout on button click (android)

Tags:

How can I open another layout xml file when I click on a button in main.xml file?

so if I have main.xml which has a button sying click here and I click it, it opens up second.xml file (layout).

like image 464
Yusef Bee Avatar asked Jun 07 '12 16:06

Yusef Bee


People also ask

How do I get a button to open another activity?

Using an OnClickListener Inside your Activity instance's onCreate() method you need to first find your Button by it's id using findViewById() and then set an OnClickListener for your button and implement the onClick() method so that it starts your new Activity .


1 Answers

First Create your two layout:

main.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="vertical"     android:layout_width="fill_parent"     android:layout_height="fill_parent"     android:background="#ffffff"  >      <TextView     android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:textColor="#000000"     android:text="This is Activity 1" />         <Button android:text="Next"         android:id="@+id/Button01"         android:layout_width="250px"             android:textSize="18px"         android:layout_height="55px">     </Button>      </LinearLayout> 

second.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="vertical"     android:layout_width="fill_parent"     android:layout_height="fill_parent"     android:background="#ffffff"  >      <TextView     android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:textColor="#000000"     android:text="This is Activity 2" />         <Button android:text="Previous"         android:id="@+id/Button02"         android:layout_width="250px"             android:textSize="18px"         android:layout_height="55px">     </Button>      </LinearLayout> 

Second Add your Activity to the manifest file

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"       package="com.rr"       android:versionCode="1"       android:versionName="1.0">     <application android:icon="@drawable/icon" android:label="@string/app_name">         <activity android:name=".Activity1"                   android:label="@string/app_name">             <intent-filter>                 <action android:name="android.intent.action.MAIN" />                 <category android:name="android.intent.category.LAUNCHER" />             </intent-filter>         </activity>         <activity android:name=".Activity2"></activity>     </application>     <uses-sdk android:minSdkVersion="3" /> </manifest> 

Activity1.java

import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button;  public class Activity1 extends Activity {     /** Called when the activity is first created. */     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);          Button next = (Button) findViewById(R.id.Button01);         next.setOnClickListener(new View.OnClickListener() {             public void onClick(View view) {                 Intent myIntent = new Intent(view.getContext(), Activity2.class);                 startActivityForResult(myIntent, 0);             }          });     } } 

To switch to Activity2 you have to:

  1. Gets a reference to the button with ID Button01 on the layout using (Button) findViewById(R.id.Button01).

  2. Create an OnClick listener for the button.

  3. And the most important part, creates an “Intent” to start another Activity. The intent needs two parameters: a context and the name of the Activity that we want to start (Activity2.class)

Activity2.java

import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button;  public class Activity2 extends Activity {      /** Called when the activity is first created. */     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.second);          Button next = (Button) findViewById(R.id.Button02);         next.setOnClickListener(new View.OnClickListener() {             public void onClick(View view) {                 Intent intent = new Intent();                 setResult(RESULT_OK, intent);                 finish();             }          });     } 
like image 139
K_Anas Avatar answered Sep 28 '22 03:09

K_Anas