Rose、咩  

磨人的Fragment的转换

本次任务是

程序运行之后将第一个Fragment加载出来

然后点击“SHOW NEXT PAGE”切换到第二个Fragment

当再次点击按钮时下方出现提示“This is second fragment”

再点击屏幕上的返回键

切换至第一个Fragment

任务的重点在于要制作两个Fragment,并且实现他们两个之间的跳转

来看代码


布局代码老规矩 直接贴上

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="暮色倾城"
        android:textSize="30dp"
        android:gravity="center_horizontal"
        android:textColor="@android:color/background_dark" />

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:orientation="vertical"
        android:layout_weight="1">

        <Button
            android:id="@+id/button"
            android:onClick="onClick"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_gravity="center"
            android:text="show next page"
            />
    </FrameLayout>

    <LinearLayout
        android:id="@+id/yy_wz"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:orientation="vertical"
        android:layout_weight="1">
    </LinearLayout>

以上是主界面布局

 <!-- TODO: Update blank fragment layout -->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:textSize="30sp"
        android:text="@string/lyf_fragment"
        android:background="@android:color/holo_blue_bright" />

</FrameLayout>
  <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:textSize="30sp"
        android:text="@string/yy_fragment"
        android:background="?attr/colorAccent" />

</FrameLayout>

以上是第二个布局代码 差不多 哈哈


然后是主界面的Java代码

其实这个有点困难,上课时就没做好,结果研究了很长时间运行后显示某某某程序已停止运行

我还能说什么,自己想不出个所以然,还好有人帮忙看出了我的问题并帮我修改代码

来看看Java代码

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
     YyFragment yyFragment;
     LyfFragment lyfFragment;
    private boolean huan = true,
            tui = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        FragmentManager manager = getFragmentManager();
        FragmentTransaction transaction = manager.beginTransaction();
        yyFragment = new YyFragment();
        transaction.add(R.id.yy_wz,yyFragment);
        transaction.commit();
    }

    @Override
    public void onClick(View view) {
        if(view.getId() == R.id.button){
            tui = true;
            if(huan){
                FragmentManager manager = getFragmentManager();
                FragmentTransaction transaction = manager.beginTransaction();
                if ( lyfFragment == null){
                    lyfFragment = new LyfFragment();
                    transaction.replace(R.id.yy_wz,lyfFragment);
                    transaction.commit();
                    huan = false;
                } else{
                    transaction.replace(R.id.yy_wz,lyfFragment);
                    transaction.commit();
                    huan = false;
                }
            }else{
                Toast.makeText(this,"This is second fragment", Toast.LENGTH_SHORT).show();
            }

        }}
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        if(event.getKeyCode()== KeyEvent.KEYCODE_BACK&&tui){

            FragmentManager manager = getFragmentManager();
            FragmentTransaction transaction = manager.beginTransaction();
            huan = true;
            tui = false;
            transaction.replace(R.id.yy_wz,yyFragment);
            transaction.commit();
            return  false;
        } else {
            finish();
        }
        return super.onKeyDown(keyCode, event);

    }

最后一段那个界面的切换和退出有些地方是不明白

虽然有注释 可是我认识汉字却读不懂那些话,只能自己再琢磨慢慢理解了

也就是说最后一段是借鉴别人的,嗯,我会努力理解它的。

最后 感谢小美人 哈哈。

posted on 2017-04-18 21:34  Rose、咩  阅读(125)  评论(0编辑  收藏  举报