如何在Android中使用Gallery View,但在另一个页面上
我在res/layout文件夹中有两个布局文件:main.xml和page2.xml。 在main.xml中,我得到了欢迎信息和开始的按钮如何在Android中使用Gallery View,但在另一个页面上,android,gallery,android-context,Android,Gallery,Android Context,我在res/layout文件夹中有两个布局文件:main.xml和page2.xml。 在main.xml中,我得到了欢迎信息和开始的按钮 setContentView(R.layout.page2); 更改为page2.xml 在我决定在page2.xml中添加Gallery视图之前,它工作得很好 当我从开始的ContentView设置到第2页,如下面所示,一切正常 public void onCreate(Bundle savedInstanceState) { super.onC
setContentView(R.layout.page2);
更改为page2.xml
在我决定在page2.xml中添加Gallery视图之前,它工作得很好
当我从开始的ContentView设置到第2页,如下面所示,一切正常
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.page2);
Gallery g = (Gallery) findViewById(R.id.gallery);
g.setAdapter(new ImageAdapter(this));
但当我第一次调用main.xml显示may起始页时
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Gallery g = (Gallery) findViewById(R.id.gallery);
g.setAdapter(new ImageAdapter(this));
应用程序返回错误。
我知道问题在于上下文是否一致
g.setAdapter(new ImageAdapter(this));
但我完全不知道如何传递正确的上下文或以另一种方式解决它(但我不想将所有布局都放在一个xml文件中)。您的解释并不完全清楚(日志从来没有伤害过),但我认为您得到了一个空指针异常,因为
gallery
未在main.xml
中定义。您的问题有两种解决方案:
startActivity()
,然后调用finish()
,这样您的欢迎活动就不会悬而未决findViewById()
作用于当前活动中“可见”的任何内容。由于您设置了setContentView(main)
,因此您的库将不在那里。只有在调用“更改页面”(setContentView(R.layout.page2);
)之后,才能尝试“获取”图库
但是,我强烈建议您选择第一个选项。出现了什么错误(异常)?您说有一个按钮使用setContentView打开page2.xml,但稍后您将显示为示例2 onCreate。我不清楚你是否有一个或两个活动。在屏幕上我只是看到它被迫退出。我试图在调试器中进一步检查smth,但找不到任何详细的错误代码。我有一个活动。我不使用Intent来启动新的活动,只需在按下按钮后设置另一个ContentView:public void buttonPressed(View target){setContentView(R.layout.page2);}Thx很多。两项活动正在正常进行。我认为简单的布局更改可以保留一项活动。我还尝试在更改视图后移动设置适配器:“public void buttonPressed(view target){setContentView(R.layout.page);g.setAdapter(new ImageAdapter(this));}”,但错误仍然存在。所以我会使用选项一:)太好了!就像我说的,这更自然,因为否则你还得拯救国家(hasSeenWelcome),等等。把它们分开比较容易。