回答
让我们来看看Android Documents:
设置活动内容,以明确的看法。该视图直接放置在活动的视图层次结构中。
因此,setContentView
将覆盖布局,并将其替换为新的布局。通常,你只想在onCreate中做一次。从理论上讲,你可以做得更多,但它涉及重新绘制整个布局,这可能需要一些时间。有几个选择,这取决于你想要什么:
- ViewAnimator:这是显示快速动画有用的,如果你要多次更改视图快速连续。
- Fragments - 不是重新绘制整个视图,而是可以切换出碎片。每个片段都是一种迷你活动,总的来说,这将包含更好的代码。
- Pass Intent Arguments - 将信息传递给活动以帮助设置。第一项活动将信息传递给常见的第二项活动,该活动知道如何根据从第一项活动中收到的信息设置自己。
至于你的具体应用,这里就是我会做:
- 每个波段遵循特定的布局。只有一个或者几个可能的布局。
- 当乐队活动开始时,选择适当的布局并填充,知道里面有什么。
Android SDK显示了如何将数据从一个活动传递到另一个活动。刚刚通过的第二个活动从第一需要的数据,使用这样的事情:
Intent intent=new Intent(...);
intent.putExtra("Album","Some Album")
startActivity(intent);
第二项活动将做到这一点:
Intent intent=getIntent();
String albumName=intent.getExtraString("Album");
//Does something with albumName, maybe get a TextView and .setText()
改变意见,所以它会很好为歌词屏幕制作一个活动并在按钮上单击更改文字? – Brsgamer
您最多只能有1首歌词。更好的做法是使用Fragments,因为这可以让你构建一个平板视图,但是同样只需要一个片段。仔细看看我链接的Fragments文档,我相信他们做的事情与你想做的事情非常相似,并且整体看起来会更好。 – PearsonArtPhoto
谢谢,将来看看吧 – Brsgamer
我不能显示的例子,因为我在等回答做到这一点。好吧,我 有歌词的应用程序(它会显示带的歌词)和专辑是新 活动,但我不想多的活动和这就是为什么我想 使歌曲只布局和改变与按钮按下的意见
这听起来像你正在以这种错误的方式去做。如果您想要更改UI Activity
包含,那么Fragment
将是更好的方法。这里有一些学习曲线,但它是很好的android设计,并且well documented。
此外,您似乎混淆了格式和内容。如果您正在播放歌词,则不需要为每首歌曲设定新的布局。你只需要改变歌词并将它们保持在同一个活动中。你所做的就像为你打算访问的每个网页创建一个新的网络浏览器。相反,找到一种方法来存储歌词并将其显示在单个活动(或片段)中以显示这些歌词。同样适用于每张专辑:一项活动将在角落(或作为背景),标题,发行日期等以文本显示专辑封面,然后显示下面的歌曲列表。 TextView
的实际内容可以改变,但布局应该是相同的。
是的,这是不好的,因为它扩大了你的布局活动,如果你的布局有很多的意见,它可能需要时间。
为了避免这种情况,你应该使用ViewAnimator,在那里你把你所有的布局和您showNext()和showPrevious(),即切换:
<ViewAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ViewAnimator"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<RelativeLayout> </RelativeLayout>
<RelativeLayout> </RelativeLayout>
</ViewAnimator>
并在代码:
// Don't forget the setContentView
//
// Load the ViewAnimator and display the first layout
ViewAnimator va = (ViewAnimator) findViewById(R.id.ViewAnimator);
// Switch to the second layout
va.showNext();
// Add another layout at the third position
LinearLayout fooLayout = new LinearLayout(this);
va.addView(fooLayout, 3, new ViewGroup.LayoutParams(MATCH_PARENT, MATCH_PARENT));
- 1. 多次调用setcontentview?
- 2. Android微调改变setContentView
- 3. 在使用setContentView加载布局时显示ProgressDialog
- 4. Android setContentView使用错误的布局文件
- 5. Android - 改变方向时未使用风景布局
- 6. Android更改setContentView
- 7. 的setContentView只有大布局
- 8. 打字时改变布局
- 9. 改变布局颜色android应用
- 10. Android - 用动画改变布局
- 11. setContentView在尝试从其他布局调用时未被调用
- 12. 我怎么使用的setContentView(r.layout.activity_main)多次
- 13. 在android中使用setcontentview
- 14. 在Android中,当我的setContentView不在该布局中时,如何在布局中编辑视图?
- 15. 在android之前投射XML布局作为视图setContentView
- 16. ZF2改变布局
- 17. 改变部分使用jquery布局
- 18. setContentView与包含MapView的布局非常缓慢的第一次
- 19. Android的 - 改变的布局儿童onMeasure
- 20. Android改变语言配置布局
- 21. 改变默认布局的Android图库
- 22. 修改从XML布局变量的Android
- 23. 使用Fragments更改Android布局
- 24. Android - 使用条件更改布局
- 25. Android布局更改
- 26. Android:在处理多种布局时重复使用customadapter
- 27. Android RelativeLayout - 使用多个布局属性
- 28. 使用多行布局实现Android ListView
- 29. Android布局加载两次
- 30. 的setContentView()的XML布局VS查看
设置内容视图的唯一功能是渲染布局树并设置根目录。如果多次完成,性能很糟糕,但没有内在的原因,你不应该这样做。 – Simon
你能举一个例子吗? – PearsonArtPhoto
我无法显示示例,因为我在等待答案。 好吧我有应用程序的歌词(它会显示乐队的歌词)和专辑是新的活动,但我不想要很多活动,这就是为什么我想只歌曲布局和按钮按 – Brsgamer