我是android的新手,正在尝试学习尽可能多的东西。我注意到布局xml文件中有这一行
$http.post("http://localhost:8080/yourresource", parameter, {headers:
{'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } }).
活动有这一行
$http({ method: 'POST', url: "http://localhost:8080/yourresource",
parameter,
headers: {'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'POST'}
})
显然,这些文件以某种方式将两个文件链接在一起,但是它们究竟是做什么的呢?
如果我切换到Main2Activity,是否会自动显示布局?
如果我更改布局,它是否会切换到我的活动,还是我仍然需要手动更改活动?
答案 0 :(得分:2)
在这里必须澄清一件事。
的确,setContentView(R.layout.acivity_main2);
会将布局文件链接到您的活动。但是,tools:context=".Main2Activity"
不会以您认为的方式将“活动”链接到布局文件。
首先,您需要注意该行中的单词tools
。 tools
是tools
命名空间通常使用的名称,它提供了一些仅在设计时有效的xml属性。看一下这份文档:https://developer.android.com/studio/write/tool-attributes
请注意,在构建应用程序时,与tools
相关的所有内容都会被删除。因此,tools:context=".Main2Activity"
在将“活动”链接到布局时起零作用。
相反,它只允许在设计过程中进行链接,方法是允许您预览在模拟tools:context=
中设置的活动的容器中进行布局。因此,如果您对该活动具有特定的主题,则“预览”将在“预览”窗口中反映该主题。
另一方面,setContentView(R.layout.activity_main2);
在将xml布局链接到“活动”时确实起到了主要的作用。
该语句告诉Activity 充气该xml布局并获取所有视图和更多内容。本质上,通过使用setContentView(R.layout.activity_main2);
告诉Activity
您想要使用该布局文件,因此请使用该文件作为准则来创建布局。
调用setContentView(R.layout.activity_main2);
后,您的“活动”将知道您要使用哪种布局,因此可以通过findViewById()
之类的方法找到要使用的视图。如果您从未使用过setContentView()
,这将是不可能的。
因此,请回答您的最后两个问题:
在布局xml文件中将Main2Activity切换到另一个Activity不会做任何事情,除了向您展示如果将其放置在另一个Activity内,其外观将如何。它根本不会改变您的应用程序的结果。全部用于设计目的。
在setContentView()
中切换到另一个布局文件将完全更改活动中使用的布局。请谨慎行事,因为如果您的代码仅用于原始布局中的视图,则如果该代码针对第二个布局运行,这将导致崩溃,因为这些视图不再存在。
底线是:
tools:context=".Main2Activity"
-连接活动和布局是不必要的。
setContentView(R.layout.acivity_main2);
-这是连接“活动”和布局的必要条件。