@TianCheng 2016-04-16 07:37 采纳率: 100%
浏览 2541
已采纳

求大神解答从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条回答 默认 最新

  • 丑旦 2016-04-16 08:20
    关注
    Intent  intent =new Intent(getActivity(),FragmentTarget.class);
    

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置