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的回退栈示例详细介绍所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)