How do you pass the data to sub-activities android? Explain for example.

Asked 23-Jan-2018
Viewed 341 times

0

How do you pass the data to sub-activities android? Explain for example.


1 Answer


0

Passing data to sub-activities in android: 

    • Getting started, to pass data from sub-activities, first, you know what is activities and sub-activities in android.
      The activity represents a current screen or single screen in android. It is like a frame or window in AWT.
      And here we simply describe sub-activity, create two activity in android, activity first & second, and activity first send data or perform other tasks to the second activity, then activity second is usually referred as a “sub-activity” of first activity.

      Example :
      Create Two Layouts file for activity & sub-activities:

      activity_first_main.xml

      <?xml version="1.0" encoding="utf-8"?>
      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:app="http://schemas.android.com/apk/res-auto"
          xmlns:tools="http://schemas.android.com/tools"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          tools:context="com.example.msclient009.opennewactivity.FirstMainActivity">
          <TextView
              android:id="@+id/textView"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignParentTop="true"
              android:layout_centerHorizontal="true"
              android:layout_marginTop="44dp"
              android:text="First Activity"
              android:textColor="#00f"
              android:textSize="30dp"
              android:textStyle="bold"
              app:layout_constraintBottom_toBottomOf="parent"
              app:layout_constraintLeft_toLeftOf="parent"
              app:layout_constraintRight_toRightOf="parent"
              app:layout_constraintTop_toTopOf="parent" />
          <EditText
              android:id="@+id/editText"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_below="@+id/textView"
              android:layout_centerHorizontal="true"
              android:layout_marginTop="79dp"
              android:hint="Enter Your Name...." />
          <Button
              android:id="@+id/button1"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_below="@+id/editText"
              android:layout_centerHorizontal="true"
              android:layout_marginTop="64dp"
              android:background="#000"
              android:padding="10dp"
              android:text="Click Here to pass data from sub-activity"
              android:textColor="#fff" />
      </RelativeLayout>

      activity_second_main.xml

      <?xml version="1.0" encoding="utf-8"?>
      <RelativeLayout
          xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
          android:layout_height="match_parent">
          <TextView
              android:id="@+id/textView1"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignParentTop="true"
              android:layout_centerHorizontal="true"
              android:layout_marginTop="110dp"
              android:text="Sub-Activity"
              android:textColor="#00f"
              android:textStyle="bold"
              android:textSize="30dp" />
          <TextView
              android:id="@+id/textView2"
              android:layout_width="200dp"
              android:layout_height="wrap_content"
              android:layout_below="@+id/textView1"
              android:layout_centerHorizontal="true"
              android:layout_marginTop="99dp"
              android:background="#f00"
              android:paddingLeft="20dp"
              android:paddingStart="20dp"
              android:text="Arti mishra"
              android:textColor="#fff"
              android:textSize="30dp" />
      </RelativeLayout>

      Create Java file for activity & sub-activity layout files:
      • FirstMainActivity.java is a simple java class to implementing setOnClickListener() method to handle button click event.
      • When the user clicks on the button then we create the intent, put some data and pass it to startActivity(intent) method.
      • For inserting a data we can use putExtra(key, value) method.

      FirstMainActivity.java

      package com.example.msclient009.opennewactivity;
      import android.content.Intent;
      import android.support.v7.app.AppCompatActivity;
      import android.os.Bundle;
      import android.view.View;
      import android.widget.Button;
      import android.widget.EditText;
      public class FirstMainActivity extends AppCompatActivity {
          EditText editText;
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_first_main);
              Button button=(Button)findViewById(R.id.button1);
               editText=(EditText)findViewById(R.id.editText);
              button.setOnClickListener(new View.OnClickListener() {
                  @Override
                  public void onClick(View view) {
                      String str=editText.getText().toString();
                      Intent intent=new Intent(FirstMainActivity.this, NewMainActivity.class);
                      intent.putExtra("Name", str);
                      startActivity(intent);
                  }
              });
          }
      }

      • SubActivity.java is the activity we want to start. It contains two text view to display data or any message sent from the FirstMainActivity.java.
      • For extracting the sent message from FirstMainActivity.java file we can use getIntent().getStringExtra(“message”) method.

      SubActivity.java

      package com.example.msclient009.opennewactivity;
      import android.app.Activity;
      import android.content.Intent;
      import android.os.Build;
      import android.os.Bundle;
      import android.support.annotation.RequiresApi;
      import android.widget.TextView;
      public class SubActivity extends Activity {
       TextView textView;
          @RequiresApi(api = Build.VERSION_CODES.N)
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_second_main);
              textView=(TextView)findViewById(R.id.textView2);
              Intent intent=getIntent();
              String str = intent.getStringExtra("Name");
              textView.setText(str);
          }
      }

      Define Activities in the Manifest.XML File :

      <?xml version="1.0" encoding="utf-8"?>
      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.msclient009.opennewactivity">
          <application
              android:allowBackup="true"
              android:icon="@mipmap/ic_launcher"
              android:label="@string/app_name"
              android:roundIcon="@mipmap/ic_launcher_round"
              android:supportsRtl="true"
              android:theme="@style/AppTheme">
              <activity android:name=".FirstMainActivity">
                  <intent-filter>
                      <action android:name="android.intent.action.MAIN" />
                      <category android:name="android.intent.category.LAUNCHER" />
                  </intent-filter>
              </activity>
              <activity
                  android:name=".SubActivity"
                  android:label="@string/app_name" >
              </activity>
          </application>
      </manifest>

      Output :

      How do you pass the data to sub-activities android? Explain for example.How do you pass the data to sub-activities android? Explain for example.