关于Fragment的应用

关于Fragment的应用
########这次的作业是实现利用Fragment实现界面跳转的功能。

这是界面布局的代码:
1)activity.xml
     <Button
    android:id="@+id/btn_b1"
    android:layout_width="wrap_content"
    android:layout_height="77dp"
    android:layout_gravity="center"
    android:layout_margin="90dp"
    android:text="Show next page"
    android:layout_weight="0.04" />
   </LinearLayout>
2)First fragment.xml的代码:
  <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context="com.example.wdh.fragmentwork.FirstFragment">

 <TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:text="@string/First" />

</FrameLayout>
2)Second fragment.xml的代码:
  <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context="com.example.wdh.fragmentwork.ScondFragment">

  <!-- TODO: Update blank fragment layout -->
  <TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:text="@string/Second" />
2)Java的代码:
  public class MainActivity extends AppCompatActivity implements View.OnClickListener {
  FirstFragment firstFragment;
  ScondFragment scondFragment;
  private boolean a = true;
  private boolean b = false;


 @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    FragmentManager manager = getFragmentManager();
    FragmentTransaction transaction = manager.beginTransaction();
    firstFragment = new FirstFragment();
    transaction.add(R.id.show, firstFragment);
    transaction.commit();
  }

  @Override
  public void onClick(View v) {
    if (v.getId() == R.id.btnshow) ;
    a = true;
    if (b) {
        FragmentManager manager = getFragmentManager();
        FragmentTransaction transaction = manager.beginTransaction();
        if (scondFragment == null) {
            scondFragment = new ScondFragment();
            transaction.replace(R.id.show, scondFragment);
            transaction.commit();
            a = false;
        } else {
            transaction.replace(R.id.show, scondFragment);
            transaction.commit();
            a = false;
        }
    } else {
        Toast.makeText(this, "This is second fragment", Toast.LENGTH_SHORT).show();
        }
     }
  }
  @Override
  public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && b) {
        FragmentManager manager = getFragmentManager();
        FragmentTransaction transaction = manager.beginTransaction();
        a = true;
        b = false;
        transaction.replace(R.id.show, firstFragment);
        transaction.commit();
        return false;
    } else {
        finish();
    }
    return super.onKeyDown(keyCode, event);
  }
posted @ 2017-04-18 22:18  Doranmi  阅读(136)  评论(0编辑  收藏  举报