AndroidFragment的回退栈示例详细介绍

AndroidFragment的回退栈示例详细介绍,第1张

概述Android Fragment的回退栈点开之后按一次回退键只返回一次MainActivity类publicclassMainActivityextendsAppCompatActivity{

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(),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>

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

总结

以上是内存溢出为你收集整理的Android Fragment的回退栈示例详细介绍全部内容,希望文章能够帮你解决Android Fragment的回退栈示例详细介绍所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1147406.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存