怎么通过fragment里面的一个按钮跳转到另一个activity

我这样写错误在哪?publicvoidonclick1(Viewview){startActivity(newIntent(getActivity(),com.xxx.x... 我这样写错误在哪?
public void onclick1(View view) {
startActivity(new Intent(getActivity(),com.xxx.xxx.activity2.class));
}
活动activity1 里面有个 碎片fragment
碎片fragment 里有个 按钮button,
按钮button 的onClick属性是 onclick1,
活动activity2 的布局文件是 layout2,

我想点击button,跳转到activity2;

上述代码写在 fragment.java 的 public class activity1 extends Fragment{} 中。
activity1、activity2都已经在mainfest中注册。

错误代码:java.lang.IllegalStateException: Could not find a method layout2(View) in the activity class com.xxx.xxx.Activity1 for onClick handler on view class android.widget.Button with id 'button'
运行时点击button提示已停止运行。
展开
 我来答
QQMSD8
2018-07-26 · 知道合伙人软件行家
QQMSD8
知道合伙人软件行家
采纳数:6788 获赞数:13239
没有做不到,只有想不到,帮助别人的同时也是对自己的提升

向TA提问 私信TA
展开全部

fragment是运行在Activity中的,转跳到其它Activity需要用到Context的API。

具体实现方式:

  1. 获取装载fragment的Activity做为Context 

  2. getActivity() 得到Context

  3. 创建Intent 意图,并指定转跳的Activity

  4. Context context = getActivity();

  5. Intent intent = new Intent(context ,目标Activity.class);

  6. 调用context.startActivity(intent);即可转跳到指定的Activity

千锋教育
2018-07-30 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
两种方法:
//直接从fragment中跳转

startActivityForResult(intent, REQUEST_CODE);

这种写法接收返回的结果要在fragment中重写onActivityResult()方法;
//从activity中跳转

getActivity().startActivityForResult(intent, REQUEST_CODE);
这种写法要在Activity中重写onActivityResult()方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-21
展开全部
startActivity(new Intent("com.xxx.xxx.activity2"));字符串代表的是Action,你直接传入class不就好了吗
更多追问追答
追问
在碎片里面怎么可能直接打开一个活动……我问的是怎么通过fragment里的按钮跳转到另一个activity。
追答
碎片里面怎么不能直接打开……你都可以getActivity了,为什么不能通过它来打开活动,为什么不能通过它来跳转activity……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
althussky
推荐于2018-03-14
知道答主
回答量:43
采纳率:0%
帮助的人:11万
展开全部
Intent i = new Intent(getActivity(), activityname.class);
i.putExtra("key", value);
getActivity().startActivity(i);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-20
展开全部
Intent intent = new Intent(activity1.this, com.xxx.xxx.activity2.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);

这种用法需要注意的是在AndroidManifest.xml声明一下Activity

请参考
追问
public void onclick1(View view)
{
startActivity(new Intent("com.xxx.xxx.activity2"));
}
你想说的是这个吗?
从fragment跳到activity这样不能实现。我试了下你的,不行~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式