当前位置: 移动技术网 > IT编程>移动开发>Android > Android Fragment的回退栈示例详细介绍

Android Fragment的回退栈示例详细介绍

2019年07月24日  | 移动技术网IT编程  | 我要评论

黑钻代码,最新拳击比赛,上海三结义吴奇隆版

android  fragment的回退栈

点开之后按一次回退键只返回一次

mainactivity 类

public class mainactivity extends appcompatactivity {

  listview lv;
  list<article> mlist = new arraylist<>();
  contentfragment fragment;

  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.activity_main);
    lv = (listview) findviewbyid(r.id.lv);
    //找到xml中静态创建的fragment
//    fragment = (contentfragment) getsupportfragmentmanager().findfragmentbytag("fragment");
//    //获取到引用
//   fragment.showtoask("这是activity中调用fragment中的方法");
    initdata();
    lv.setadapter(adapter);
    lv.setonitemclicklistener(new adapterview.onitemclicklistener() {
      @override
      public void onitemclick(adapterview<?> parent, view view, int position, long id) {
        article a = mlist.get(position);
        contentfragment fragment = new contentfragment();
        //activity向新建的fragment传参
        bundle bundle = new bundle();
        bundle.putserializable("article",a);
        fragment.setarguments(bundle);
        //去显示
        fragmenttransaction ft = getsupportfragmentmanager().begintransaction();
        ft.replace(r.id.fl_content,fragment);
        //添加回退栈
        ft.addtobackstack(null);
        ft.commit();
      }
    });
  }
  public void showtoask(string msg){
    toast.maketext(this,msg,toast.length_short).show();
  }

  private void initdata() {
    mlist.add(new article("习近平会见菲总统:把分歧管控好 把合作谈起来", "习近平指出,中菲是隔海相望的近邻,两国人民是血缘相亲的兄弟。中菲同为发展中国家,团结、互助、合作、发展是我们的共同目标。虽然我们之间经历风 雨,但睦邻友好的情感基础和合作意愿没有变。中方高度重视中菲关系,愿同菲方一道努力,不断增进政治互信、深化互利合作、妥善处理分歧,做感情上相近相 通、合作中互帮互助、发展中携手前行的睦邻友好伙伴。"));
    mlist.add(new article("外交部官员", "。中菲同为发展中国家,团结、互助、合作、发展是我们的共同目标。虽然我们之间经历风 雨,但睦邻友好的情感基础和合作意愿没有变。中方高度重视中菲关系,愿同菲方一道努力,不断增进政治互信、深化互利合作、妥善处理分歧,做感情上相近相 通、合作中互帮互助、发展中携手前行的睦邻友好伙伴。"));
    mlist.add(new article("洪秀柱邀国民党4巨头谈党产议题 马英九将出席:把分歧管控好 把合作谈起来", "邻,两国人民是血缘相亲的兄弟。中菲同为发展中国家,团结、互助、合作、发展是我们的共同目标。虽然我们之间经历风 雨,但睦邻友好的情感基础和合作意愿没有变。中方高度重视中菲关系,愿同菲方一道努力,不断增进政治互信、深化互利合作、妥善处理分歧,做感情上相近相 通、合作中互帮互助、发展中携手前行的睦邻友好伙伴。"));
  }

  class article implements serializable{
    string title;
    string content;

    public article( string title,string content) {

      this.title = title;
      this.content = content;
    }
  }

  private baseadapter adapter = new baseadapter() {
    @override
    public int getcount() {
      return mlist.size();
    }

    @override
    public article getitem(int position) {
      return mlist.get(position);
    }

    @override
    public long getitemid(int position) {
      return position;
    }

    @override
    public view getview(int position, view convertview, viewgroup parent) {
      if (convertview == null)
        convertview = new textview(mainactivity.this);

      textview tv = (textview) convertview;
      tv.settext(mlist.get(position).title);
      return convertview;
    }
  };
}

contentfragment 类

public class contentfragment extends fragment {



  @nullable
  @override
  public view oncreateview(layoutinflater inflater, @nullable viewgroup container, @nullable bundle savedinstancestate) {
    return view.inflate(getactivity(), android.r.layout.simple_list_item_2, null);
  }

  @override
  public void onviewcreated(view view, @nullable bundle savedinstancestate) {
    super.onviewcreated(view, savedinstancestate);

    textview text1 = (textview) view.findviewbyid(android.r.id.text1);
    textview text2 = (textview) view.findviewbyid(android.r.id.text2);
    bundle bundle = getarguments();
    if (bundle == null) {
      text1.settext("测试");
      text2.settext("测试内容");
    } else {
      mainactivity.article article = (mainactivity.article) bundle.get("article");


      text1.settext(article.title);
      text2.settext(article.content);
    }

    //开始调用
    mainactivity activity = (mainactivity) getactivity();
    activity.showtoask("这是fragment中调用activity中的方法");
  }

  public void showtoask(string msg){
    toast.maketext(getactivity(),msg,toast.length_short).show();
  }
}

xml

<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main"
  android:layout_width="match_parent" android:layout_height="match_parent"
  android:orientation="horizontal"
  tools:context="com.example.backstack10_20.mainactivity">

  <!--<fragment-->
    <!--android:layout_width="wrap_content"-->
    <!--android:layout_height="match_parent"-->
    <!--android:layout_weight="1"-->
    <!--android:tag="fragment"-->
    <!--android:name="com.example.backstack10_20.contentfragment"-->
    <!--/>-->
  <listview
    android:layout_width="0dp"
    android:layout_weight="1"
    android:id="@+id/lv"
    android:layout_height="wrap_content"/>
  <framelayout
    android:layout_width="0dp"
    android:layout_weight="2"
    android:layout_height="wrap_content"
    android:id="@+id/fl_content"/>
</linearlayout>

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网