1

我一直在尝试打开一系列课程:

Page01.java、Page02.java、Page03.java、Page04.java等40页

有什么方法可以让我的下一个按钮自动打开下一个课程,而无需我每次都在意图内更改课程名称?

像这样的东西:

public void Next(View v){
    Intent next = new Intent(this, "Get the next class on increment of 1");
    startActivity(next);
    finish();

谢谢!!

4

2 回答 2

2

不。做。那。


创建一个SinglePageActivity带有额外参数的类page_id

public class SinglePageActivity extends Activity {
    private int pageId;

    @Override
    public void onCreate(Bundle state) {
        super.onCreate(state);

        pageId = getIntent().getIntExtra("page_id", 1);

        // You can now decide what to display depending on pageId
        switch(pageId) {
        case 1:
            // Code for page 1
            setContentView(R.layout.page_1);
            break;
        case 2:
            // Code for page 2
            setContentView(R.layout.page_2);
            break;
        ...
        }
    }

    public void Next(View v) {
        Intent next = new Intent(this, SinglePageActivity.class);
        next.putExtra("page_id", pageId + 1);
        startActivity(next);
    }

}

您不必使用不同的布局,但可以。


我知道,这并没有(完全)回答你的问题。但在我看来,这是处理这 40 页的唯一可行方法。

而且,正如我们已经在讨论应用程序设计一样,将不同的活动用于并行(兄弟)内容是很不寻常的。按下按钮后,您可能希望替换一项活动的内容。

于 2013-11-03T18:04:07.120 回答
0

像这样试试

确保您的 Activity 类应该在同一包中。

 final String packageName = this.getClass().getPackage().getName();
 final Context context = this;
 String[] arrayOfActivity[]=new String[]{"Page01","Page02","Page03"......,"Page40"}

                      try {
                            Class c = Class.forName(packageName + "." + arrayOfActivity[position]);
                            startActivity(new Intent(context, c));
                        } catch (ClassNotFoundException e) {
                            Toast.makeText(context, String.valueOf(e), 5000).show();
                        }
于 2013-11-03T18:08:33.997 回答