Java 如何创建包含要在intent中使用的类的变量
我一直在网上搜索关于一个可以包含类对象的变量的线索,但什么也没找到。我相信有一种方法可以将类的信息存储在一个变量中,以便在intent中使用。很抱歉解释得不好,下面是代码来说明我的意思 主课Java 如何创建包含要在intent中使用的类的变量,java,android,android-intent,android-studio,Java,Android,Android Intent,Android Studio,我一直在网上搜索关于一个可以包含类对象的变量的线索,但什么也没找到。我相信有一种方法可以将类的信息存储在一个变量中,以便在intent中使用。很抱歉解释得不好,下面是代码来说明我的意思 主课 public class MainActivity extends Activity { Button startBtn, chooseLevelBtn; @Override protected void onCreate(Bundle savedInstanceState) {
public class MainActivity extends Activity {
Button startBtn, chooseLevelBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startBtn = (Button) findViewById(R.id.startBtn);
chooseLevelBtn = (Button) findViewById(R.id.chooseLevelBtn);
class classVariable = "Level001Activity.class";
/*
* I want a variable like this where I can store the Activity.class
* So that I can use a function to determine the last level played,
* and so when the player press playBtn, it would automatically
* send the intent to the latest level
* Now, how do I achieve this ?
*/
startBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(getApplicationContext(),
classVariable);
startActivity(i);
}
});
}
}
另外,我将从存储在设备内部存储器中的json文件中获取最后一级播放信息。或者任何更好的方法都会受到极大的赞赏。提前谢谢你。是的,你可以这样做。您需要将其设置为
Class
而不是Class
,并删除引号,因为它不应该是字符串
:
Class<? extends Activity> classVariable = Level001Activity.class;
Class是的,你可以这样做。您需要将其设置为Class
而不是Class
,并删除引号,因为它不应该是字符串
:
Class<? extends Activity> classVariable = Level001Activity.class;
ClassHow-aboutIntent i=(这是Level001Activity.class)
?@Christine我假设变量是在运行时动态决定的。我的主要目的是删除引号:-)那么Intent I=(这是Level001Activity.class)怎么样
?@Christine我假设变量是在运行时动态决定的。我的主要目的是删除引号:-)除了这个答案,我应该指出,如果您想在Json中存储这些类,您可以使用String
和Class.forName
来获取相应的Class
对象。非常感谢!我正要询问关于将类名存储在json中的问题,您显然已经回答了这个问题。我最衷心的感谢,先生。显然,还需要5分钟来接受这个答案。@Charas很高兴我能帮上忙,好吧,所以我试着上这个课。forName(“Level001Activity”);但是它显示了classNotFoundException,我做得不对吗?对不起,我读错了,原来它是未处理的异常,所以解决方案是使用try-and-catch-block。除了这个答案,我应该指出,如果您想将这些类存储在Json中,您可以使用String
和Class.forName
来获取相应的Class
对象。非常感谢!我正要询问关于将类名存储在json中的问题,您显然已经回答了这个问题。我最衷心的感谢,先生。显然,还需要5分钟来接受这个答案。@Charas很高兴我能帮上忙,好吧,所以我试着上这个课。forName(“Level001Activity”);但它显示了classNotFoundException,我做得不对吗?对不起,我读错了,原来它是未处理的异常,所以解决方法是使用try-and-catch块。