fragment的点击切换页面

package com.example.test;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.RadioButton;
import android.widget.Toast;

import com.example.fragment.Fragment1;
import com.example.fragment.Fragment2;
import com.example.fragment.Fragment3;
import com.example.fragment.Fragment4;

public class HomeActivity extends FragmentActivity implements OnClickListener {
	private RadioButton text1;
	private RadioButton text2;
	private RadioButton text3;
	private RadioButton text4;
	private FragmentManager manager;
	private Fragment f1;
	private Fragment2 f2;
	private Fragment3 f3;
	private Fragment4 f4;
	private int flag;
	 private long mExitTime;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.activity_home);
		text1=(RadioButton) findViewById(R.id.text1);
		text2=(RadioButton) findViewById(R.id.text2);
		text3=(RadioButton) findViewById(R.id.text3);
		text4=(RadioButton) findViewById(R.id.text4);
		text1.setOnClickListener(this);
		text2.setOnClickListener(this);
		text3.setOnClickListener(this);
		text4.setOnClickListener(this);
		flag = getIntent().getIntExtra("shop_num", 0);
		getfragment();
		changefragment("f1");
	}
	  public boolean onKeyDown(int keyCode, KeyEvent event) {
          if (keyCode == KeyEvent.KEYCODE_BACK) {
                  if ((System.currentTimeMillis() - mExitTime) > 2000) {
                          Object mHelperUtils;
                          Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
                          mExitTime = System.currentTimeMillis();

                  } else {
                          finish();
                  }
                  return true;
          }
          return super.onKeyDown(keyCode, event);
  }
	private void changefragment(String tag) {
		FragmentTransaction transaction=manager.beginTransaction();
		if("f1".equals(tag)){
			transaction.show(f1);
			transaction.hide(f2);
			transaction.hide(f3);
			transaction.hide(f4);
		}else if("f2".equals(tag)){
			transaction.show(f2);
			transaction.hide(f1);
			transaction.hide(f3);
			transaction.hide(f4);
		}else if("f3".equals(tag)){
			transaction.show(f3);
			transaction.hide(f1);
			transaction.hide(f2);
			transaction.hide(f4);
		}else if("f4".equals(tag)){
			transaction.show(f4);
			transaction.hide(f2);
			transaction.hide(f3);
			transaction.hide(f1);
		}
		transaction.commit();
	}

	private void getfragment() {
		manager=getSupportFragmentManager();
		FragmentTransaction transaction=manager.beginTransaction();
		//ʵ��fragment
		f1=new Fragment1();
		f2=new Fragment2();
		f3=new Fragment3();
		f4=new Fragment4();
		transaction.add(R.id.frame, f1,"f1");
		transaction.add(R.id.frame, f2,"f2");
		transaction.add(R.id.frame, f3,"f3");
		transaction.add(R.id.frame, f4,"f4");
		transaction.commit();
	}

	@Override
	public void onClick(View arg0) {
		switch (arg0.getId()) {
		case R.id.text1:
			changefragment("f1");
			break;
		case R.id.text2:
			changefragment("f2");
			break;
		case R.id.text3:
			if(flag==5){
				changefragment("f3");
			}else{
				Intent intent=new Intent(HomeActivity.this,LoginActivity.class);
				startActivity(intent);
			}
			break;
		case R.id.text4:
			changefragment("f4");
			break;
		default:
			break;
		}
	}
}


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Fragment实现页面切换,需要以下几个步骤: 1. 创建需要切换Fragment类,实现其中的UI布局和逻辑。例如,创建两个FragmentFragmentA和FragmentB。 2. 在布局文件中创建一个Fragment容器,例如使用FrameLayout布局: ```xml <FrameLayout android:id="@+id/fragment_container" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 3. 在Activity中,获取Fragment容器,并在Activity创建时加载默认的Fragment。例如,MainActivity中加载FragmentA: ```java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 获取Fragment容器 FrameLayout fragmentContainer = findViewById(R.id.fragment_container); // 加载默认的Fragment getSupportFragmentManager() .beginTransaction() .replace(R.id.fragment_container, new FragmentA()) .commit(); } } ``` 4. 在需要切换Fragment的事件中,使用FragmentManager将当前的Fragment替换为目标Fragment。例如,在点击按钮时切换FragmentB: ```java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 获取Fragment容器 FrameLayout fragmentContainer = findViewById(R.id.fragment_container); // 加载默认的Fragment getSupportFragmentManager() .beginTransaction() .replace(R.id.fragment_container, new FragmentA()) .commit(); // 设置按钮点击事件,切换FragmentB Button switchButton = findViewById(R.id.switch_button); switchButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getSupportFragmentManager() .beginTransaction() .replace(R.id.fragment_container, new FragmentB()) .commit(); } }); } } ``` 这样,就可以使用Fragment实现页面切换了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值