Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.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 Android如何加载新布局_Java_Android_Button_Android Activity_Oncreate - Fatal编程技术网

Java Android如何加载新布局

Java Android如何加载新布局,java,android,button,android-activity,oncreate,Java,Android,Button,Android Activity,Oncreate,我试图加载一个新的布局当我点击一个按钮时,这个布局中只有一个webView,所以我的目标是,当点击按钮时,它打开webView并将用户引导到一个预先确定的页面。现在我有 Button codesBtn = (Button)findViewById(R.id.imagebutton1); codesBtn.setOnClickListener(new OnClickListener() { public void onClick(View v) {

我试图加载一个新的
布局
当我点击一个按钮时,这个布局中只有一个
webView
,所以我的目标是,当点击按钮时,它打开webView并将用户引导到一个预先确定的页面。现在我有

Button codesBtn = (Button)findViewById(R.id.imagebutton1);
    codesBtn.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            setContentView(R.layout.codes);
        }
    });
这在我的主活动中的
onCreate()
方法中。我有几点担心:

1) 这是将这段代码放入的正确位置吗?
2) 我是否需要为webView创建单独的活动以及我希望按钮执行的操作?
3) 如果是,所需活动的基本结构是什么


提前谢谢

通常,使用新布局启动新活动比更改当前活动中的布局更容易

如果您想将用户引导到网站,可以使用意图要求浏览器打开(示例取自)

或者,您可以创建一个只有WebView的活动,并通过以下方式启动该活动:

Intent i = new Intent(this, MyWebViewActivity.class);
i.putExtra("destination", myDestination);
startActivity(i);

你试过了吗?它看起来总体上还可以;不,您通常不需要单独的活动。如果你偶然发现了某个特定的东西,一定要问一个特定的问题。@SevaAlekseyev好吧,我从这段代码中得到的错误是,它不能将“代码”识别为布局。我必须对清单文件做些什么才能像上面那样使用“代码”吗?编辑codes.xml,将布局作为顶级对象。框架布局或线性布局就可以了。使您的WebView成为其子视图。在Android中,布局XML文件的顶级对象应该是布局,而不是数据视图。如果您只是想更改视图,那么将框架布局作为顶级视图并在其中翻转框架就容易多了。@Seva Alekseyev,真的吗?请支持你的要求。如果你真的认为这是一个更好的解决方案,你应该提供一个答案,详细说明这一点。然而,Android的标准最佳实践是为每个独特的视觉界面使用不同的活动。在文档中,“一项活动为用户可以进行的一项重点工作提供了一个可视化的用户界面。”使用不同的活动可以为您提供许多良好的默认行为,如适当的后退行为和熟悉的屏幕过渡,这将使您的应用程序易于用户学习。如果您交换视图,您需要自己实现所有这些,这当然是可能的,但在简单的情况下,这就太过分了。一般来说,只有当您以简单的方式完成任务,并且发现您有实际的性能问题时,才进行性能优化。在任何Android手机上,在新活动中加载WebView都不会成为问题。活动的开销包括:状态管理、非平凡生存期、意图处理、上下文管理(资源等)、对话框堆栈。。。对于简单的视图翻转任务来说,这些都是不需要的。@Seva-Alekseyev,是的,有开销。我没说没有。但是,开销是否值得获得简单性呢?在这种情况下,我肯定会说,是的。有些“开销”实际上对于在视图之间切换非常有用,这就是为什么活动首先存在的原因。如果你正在写一个速度要求严格的游戏或者其他东西,你可能需要考虑优化,但不是像这样简单的情况。使用活动会增加多少毫秒?与加载网页的时间相比?
Intent i = new Intent(this, MyWebViewActivity.class);
i.putExtra("destination", myDestination);
startActivity(i);