Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何创建包含要在intent中使用的类的变量_Java_Android_Android Intent_Android Studio - Fatal编程技术网

Java 如何创建包含要在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) {

我一直在网上搜索关于一个可以包含类对象的变量的线索,但什么也没找到。我相信有一种方法可以将类的信息存储在一个变量中,以便在intent中使用。很抱歉解释得不好,下面是代码来说明我的意思

主课

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-about
Intent 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块。