Android - Java中的类序列

时间:2013-11-03 17:58:27

标签: java android eclipse

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

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();

谢谢!

2 个答案:

答案 0 :(得分: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页的唯一可行方式。

而且,由于我们已经在谈论应用程序设计,因此对于并行(兄弟)内容使用不同的活动是很不寻常的。按下按钮后,您可能希望替换一个活动的内容。

答案 1 :(得分: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();
                        }