How to trigger initial activity from one Java class

Is it possible to run Activtyusing Intentin a common class javawhich extends Activity?

 import android.os.Bundle;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.widget.Button;
 import android.widget.Spinner;
 import android.app.Activity;
 import android.content.Intent;

 public class SubActivity extends Activity{

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

And a generic java class like

class TestClass extends Activity{

       void firstsem(){
        Intent t = new Intent(this, SubActivity.class);
        t.putExtra("sub1","chemistry");                 
        startActivity(t);
   }
}

Is it possible to run Activity from a generic java class? Can someone show me how to do this?

+4
source share
6 answers

ActivityYou need to run Context.

The method startActivity(Intent intent)inherits from the class Context. As seen in the documentation

Also explicit Intentitself needs Contextits constructor.

Intent(Context packageContext, Class<?> cls)

Like Activity extends Context, and you have increased activity, you can use your own class as Context. And so just call

void method() {
    startActivity(new Intent(this, ActivityName.class));
} 

Activity, .

public static void startActivity(Context context) {
    context.startActivity(new Intent(context, ActivityName.class));
} 

public class ActivityA extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate();
    }

    public void onClick(View view) {
        ActivityStarter.startActivityB(this);
    }
}

public class ActivityB extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate();
    }
}

public class ActivityStarter {

    public static void startActivityB(Context context) {
        Intent intent = new Intent(context, ActivityB.class);
        intent.putExtra("sub1","chemistry"); 
        context.startActivity(intent);
    }
}
+8

, . . Custom.java , NewActivity, method() .

1:

EndZeit, MainActivity Custom.java .

Custom custom = new Custom(MainActivity.this);

2:

:

Private Context context;
public Custom (Context context) {
    this.context = context;
}

3:

:

public void method() {
    Intent intent = new Intent(context, NewActivity.class);
    context.startActivity(intent);
}

:)

+3

:

Intent t= new Intent(testclass.this,Subject.class);

Intent t= new Intent(testclass.this,subactivity.class);

- :

<activity android:name="com.example.app.subactivity" />
+1

When the class expands Activity, it goes into the Activity class. So, your both classes, subactivityand testclass, activity class.

Yes, you can start an action from another class.

Follow the tutorial below ... you'll learn how to start an activity with another action.

Android Activity - From Screen to Another Screen

0
source

In Kotlin, this is how you can do it.

I assume you have available context

val intent = Intent(context, YourActivity::class.java)
context.startActivity(intent)
(context as Activity).finish()
0
source

Just use the following code from any Java class:

Intent i = new Intent(getContext(),TargetActivity.class);
getContext().startActivity(i);
0
source

All Articles