android点击按钮切换Layout?

Main界面一共是7个按钮,每个按钮点击之后进入一个已经创建的、独立的Layout(也是7个,每个上面也有按钮,点击之后返回Main界面),在线等待,解决有重谢啊修改之后... Main界面一共是7个按钮,每个按钮点击之后进入一个已经创建的、独立的Layout(也是7个,每个上面也有按钮,点击之后返回Main界面),在线等待,解决有重谢啊
修改之后出错的代码:
public class MainActivity extends Activity {
Button begin;
OnClickListener begin_l=new OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(MainActivity.this, beginActivity.class);
startActivity(i);
}
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
begin.setOnClickListener(begin_l);
}
展开
 我来答
半塘无水
推荐于2016-01-31 · TA获得超过2.2万个赞
知道大有可为答主
回答量:4220
采纳率:68%
帮助的人:902万
展开全部
屏幕切换指的是在同一个Activity内屏幕见的切换,最长见的情况就是在一FrameLayout内有多个页面,比如一个系统设置页面;一个个性化设置页面。
通过查看OPhone API文档可以发现,有个android.widget.ViewAnimator类继承至FrameLayout,ViewAnimator类的作用是为FrameLayout里面的View切换提供动画效果。该类有如下几个和动画相关的函数:

setInAnimation:设置View进入屏幕时候使用的动画,该函数有两个版本,一个接受单个参数,类型为android.view.animation.Animation;一个接受两个参数,类型为Context和int,分别为Context对象和定义Animation的resourceID。

java代码:
setOutAnimation: 设置View退出屏幕时候使用的动画,参数setInAnimation函数一样。
showNext: 调用该函数来显示FrameLayout里面的下一个View。
showPrevious: 调用该函数来显示FrameLayout里面的上一个View。
复制代码
一般不直接使用ViewAnimator而是使用它的两个子类ViewFlipper和ViewSwitcher。ViewFlipper可以用来指定FrameLayout内多个View之间的切换效果,可以一次指定也可以每次切换的时候都指定单独的效果。该类额外提供了如下几个函数:

java代码:
isFlipping: 用来判断View切换是否正在进行
setFilpInterval:设置View之间切换的时间间隔
startFlipping:使用上面设置的时间间隔来开始切换所有的View,切换会循环进行
stopFlipping: 停止View切换
复制代码

ViewSwitcher 顾名思义Switcher特指在两个View之间切换。可以通过该类指定一个ViewSwitcher.ViewFactory 工程类来创建这两个View。该类也具有两个子类ImageSwitcher、TextSwitcher分别用于图片和文本切换。

ViewFlipper示例

ViewFlipper是继承至FrameLayout的,所以它是一个Layout里面可以放置多个View。在示例中定义一个ViewFlipper,里面包含三个ViewGroup作为示例的三个屏幕,每个ViewGroup中包含一个按钮和一张图片,点击按钮则显示下一个屏幕。代码如下(res\layout\main.xml):

java代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ViewFlipper android:id="@+id/details"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:persistentDrawingCache="animation"
android:flipInterval="1000"
android:inAnimation="@anim/push_left_in"
android:outAnimation="@anim/push_left_out"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:text="Next"
android:id="@+id/Button_next1"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</Button>
<ImageView
android:id="@+id/image1"
android:src="@drawable/dell1"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</ImageView>
</LinearLayout>

<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:text="Next"
android:id="@+id/Button_next2"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</Button>
<ImageView
android:id="@+id/image2"
android:src="@drawable/lg"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</ImageView>
</LinearLayout>

<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:text="Next"
android:id="@+id/Button_next3"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</Button>
<ImageView
android:id="@+id/image3"
android:src="@drawable/lenovo"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</ImageView>
</LinearLayout>

</ViewFlipper>

</LinearLayout>

复制代码

系列之Android 切换多个layout界面(二) 的帖子链接http://www.eoeandroid.com/thread-90754-1-1.html
系列之Android 切换多个layout界面(三) 的帖子链接http://www.eoeandroid.com/thread-90759-1-1.html
diyangxia
推荐于2016-11-17 · TA获得超过346个赞
知道小有建树答主
回答量:389
采纳率:50%
帮助的人:96.2万
展开全部
如果按照一楼说的那就简单了,activity之间的来回切换而已。
举个例子:
Intent i=new Intent(first.this, View2.class);
startActivity(i);
把上面这段代码写进按钮的单击事件onclick里。
这样写虽然简单,但是貌似代码比较繁琐
更多追问追答
追问
按照您说的,但是一点击按钮就直接停止运行
代码部分在问题补充里面。
追答
你的Activity在全局配置文件中注册了吗,如果是的话,那你就好好看看log吧,这样才能定位错误,解决错误
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8f2b309
2013-04-21 · TA获得超过792个赞
知道小有建树答主
回答量:302
采纳率:0%
帮助的人:210万
展开全部
再建立7个Activity,每个Activity对应一个Layout setContentView()
在Main中点击对应按钮建立Intent对象,切换
更多追问追答
追问
Intent i=new Intent(context, View2.class);

setContentView(R.id.Main2)
是不是像这样写在OnCreate下面?
追答
每个活动都要在AndroidManifest.xml中配置

当前活动中启动View2.class对应的活动
intent=new Intent(this.class,View2.class);
startActivity(intent);

View2的OnCreate中
setContentView(R.id.Main2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-21
展开全部
建议用Fragment
追问
本人初学者,对这块非常的不熟悉,我可能下一个项目里再去尝试,查了一下还是有点难度的,并且要重新写layout文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式