是否可以在Activty
的{{1}}课程Intent
中使用java
开始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);
}
}
一般的java类如下
class TestClass extends Activity{
void firstsem(){
Intent t = new Intent(this, SubActivity.class);
t.putExtra("sub1","chemistry");
startActivity(t);
}
}
是否可以从一般的java类启动一个Activity?有人能告诉我如何实现这个目标吗?
答案 0 :(得分:8)
要开始Activity
,您需要Context
。
方法startActivity(Intent intent)
继承自Context
类。 As it can be seen in the Documentation
显式Intent
本身在其构造函数中也需要Context
。
Intent(Context packageContext, Class<?> cls)
作为Activity extends Context
并且你已经扩展了Activity,你可以使用自己的类作为Context。
因此,只需致电
void method() {
startActivity(new Intent(this, ActivityName.class));
}
如果您不想扩展Activity,可以将Context作为参数传递。
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);
}
}
答案 1 :(得分:1)
更改此行:
Intent t= new Intent(testclass.this,Subject.class);
为:
Intent t= new Intent(testclass.this,subactivity.class);
另外,在您的清单文件中引用子活动
类似的东西:
<activity android:name="com.example.app.subactivity" />
答案 2 :(得分:1)
只需使用任何Java类中的以下代码:
Intent i = new Intent(getContext(),TargetActivity.class);
getContext().startActivity(i);
答案 3 :(得分:0)
当一个类扩展Activity
然后转向Activity类。因此,您的两个班级subactivity
和testclass
,活动类。
是的,你可以从另一个班级开始一项活动。
按照以下教程链接...您将了解如何从其他活动开始活动
答案 4 :(得分:0)
在Kotlin中,这是您的操作方式
我假设您有context
个可用
val intent = Intent(context, YourActivity::class.java)
context.startActivity(intent)
(context as Activity).finish()