2 cairunbo cairunbo 于 2016.04.16 15:37 提问

求大神解答从Fragment中的按钮跳转至另一个页面的问题

小弟学习安卓的时候遇到了问题,如下。
我显示编辑了一个Fragment的类,代码如下:
import android.app.Activity;
import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;

public class FragmentRecord extends Fragment implements View.OnClickListener{
private ListView listView;
private String[] mStrings = {"运动1", "运动2", "运动3"};
private ArrayAdapterarray_adapter;
private ImageView btn_add;

@Override
public void onAttach(Activity activity) {
    // TODO Auto-generated method stub
    super.onAttach(activity);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView =inflater.inflate(R.layout.fragment_record, container, false);
    listView = (ListView)rootView.findViewById(R.id.listView_data);//获取自己视图里的控件引用
    btn_add=(ImageView) rootView.findViewById(R.id.btn_add);
    //return inflater.inflate(R.layout.fragment_record,container,false);
    return rootView;  
    }

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onActivityCreated(savedInstanceState);
    array_adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, mStrings);
    listView.setAdapter(array_adapter);
    btn_add=(ImageView) getActivity().findViewById(R.id.btn_add);
    btn_add.setOnClickListener(this);

}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    Intent  intent =new Intent(getActivity(),FragmentTarget.class);
    FragmentRecord.this.startActivity(intent);
}

}

我设置了按钮的点击事件,可是为什么一点按钮就报错,错误如下:、
图片说明

然后我想要跳转的页面是这样的一个:
import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class FragmentTarget extends Fragment {
@Override
public void onAttach(Activity activity) {
// TODO Auto-generated method stub
super.onAttach(activity);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_target, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
}
}

不太清楚如何改可以改了这个FragmentTartget强制转换成activity的错误,求大神解答,十分感谢!

3个回答

luochoudan
luochoudan   Ds   Rxr 2016.04.16 16:20
已采纳
Intent  intent =new Intent(getActivity(),FragmentTarget.class);

这句话错了,跳转的只能是Activity,Fragment必须依附于Activity才能存在。两种方法:要么用ActivityB来盛放FragmentTarget,然后跳转到ActivityB中即可,这应该不是你的本意;
要么用FragmentManager、FragmentTransaction来实现Fragment的替换。

cairunbo
cairunbo 好的,感谢您的帮助!
2 年多之前 回复
baidu_23086307
baidu_23086307   2016.04.16 16:23

跳转前移除父view,就不会报错了

cairunbo
cairunbo 好的,感谢您的帮助!
2 年多之前 回复
crazy1235
crazy1235   Ds   Rxr 2016.04.16 20:32

类转换异常。

Intent  intent =new Intent(getActivity(),FragmentTarget.class);

这一句代码错误。
第二个参数应该activity的class对象。
fragment只能依存于activity。
http://blog.csdn.net/crazy1235/article/details/50933621

crazy1235
crazy1235 请采纳!谢谢~
2 年多之前 回复
cairunbo
cairunbo 好的,感谢您的帮助!
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
fragment中的一个按钮跳转到另外一个Fragment解决方案
要表达的意思如图所示: 解决方案:用广播处理 1.在oncreate 方法中注册广播 filter = new IntentFilter();   filter.addAction("TUIGUANG");   registerReceiver(new mainReceiver(), filter); 2.实现mainReceiver方法 class mainReceiv
Fragment跳转到Activity
最近在做项目需要从Fragment跳转到Activity,并且从Activity跳转到Fragment。Fragment(碎片)是android 3.0为了适应平板电脑儿引入的。Fragment最大的特点就是你可以为不同屏幕大小的设备创建动态灵活的UI(具体使用方法请查看相关资料)。 首先,从Fragment跳转到Activity:(和Activity之间的跳转差不多)
Fragment跳到另一个Fragment
在MyFragment1类中: public void onClick(View v) {      FragmentManager fm = getFragmentManager();      FragmentTransaction ft = fm.beginTransaction();  switch (v.getId()) {  case R.id.ib_update:  
viewpager里面的fragment之间的跳转
一开始我想着用fragmentManager tranction之类的来进行跳转 后面各种问题 后面发现直接用viewpager的setCurrentItem就可以进行跳转了,根本不用弄得那么复杂
fragmentTabHost中点击一个fragment中的按钮,跳转到另外一个fragment的解决办法
最近项目中用到fragmentTabHost,在其中的一个fragment中有多个按钮,点击可跳转到别的fragment,实现方法是,在MainActivity中写方法: public void setTab(int tab){ tabHost.setCurrentTab(tab); } 在fragment中: MainActivity mainActivity=(MainA
Fragment互相切换,点击Fragment上的按钮跳转到Fragment简单总结
项目当中遇到了,一个头疼问题,布局主要采用MainActivity 挂载 Fragment 来显示内容,并实现点击底部标签实现切换。但是头疼的是项目当中有一个需求就是点击某个Fragment也面上的按钮跳转到 另一个Fragment上。找了好多资料效果都不理想。后来在朋友的帮助下 找到了方法 。下面简单的总结一下,注意事项和参数都在注视当中写了不在赘述。 /**
如何从fragment中点击一个Button跳到另一个activity
Android有一个新特性,增加了fragment。
fragment+viewpager学习二(fragment间的跳转) 更新中
一、实现效果图
Android&nbsp;&nbsp;activity跳转到另一个activity的指定fragment页面
Android&nbsp;&nbsp;activity跳转到另一个activity的指定fragment页面 2014年9月26日 14:47 新浪博客 最近在做一个项目用了activity跳转到fragment,所以就在网上找了很多的列子。 下面先看几张图: 首页、简介、和设置都是fragment碎片。在mainactivity里面。而test
android从fragment跳转到fragment问题解决
今天遇到一个问题,虽然不是很小但是也不是很大,就是从fragmentA准确的跳到fragmentB去,还有就是从Activity准确的跳到fragment 去,后面这个问题让我想了好半天,最后还是处理了,处理这个问题就不要用广播去传值解决了,因为会出现…… after on saveInstance错误。