我一直在尝试打开一系列课程:
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();
谢谢!
答案 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();
}