zoukankan      html  css  js  c++  java
  • 滑动切换页面

    public class Main extends ActivityGroup implements OnTouchListener,OnGestureListener {
    private LocalActivityManager localActivityManager = null;
    private LinearLayout mainTabContainer = null;
    private Bundle bundle= null;
    private int tag=1;
    private GestureDetector mGestureDetector=null;
    private RadioButton zwss,glzx,hyzp,zczx,more;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(1);
    setContentView(R.layout.main);
    mGestureDetector = new GestureDetector((OnGestureListener)this);
    localActivityManager = getLocalActivityManager();
    mainTabContainer = (LinearLayout)findViewById(R.id.tab_main);
    mainTabContainer.setOnTouchListener(this);
    mainTabContainer.setLongClickable(true);
    RadioGroup radioGroup = (RadioGroup)findViewById(R.id.rg_tab_foot);
    zczx = (RadioButton)radioGroup.findViewById(R.id.zczx);
    hyzp = (RadioButton)radioGroup.findViewById(R.id.hyzp);
    glzx = (RadioButton)radioGroup.findViewById(R.id.glzx);
    zwss = (RadioButton)radioGroup.findViewById(R.id.zwss);
    more = (RadioButton)radioGroup.findViewById(R.id.more);
    radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
    switch (checkedId) {
    case R.id.zwss:
    setContainerView(String.valueOf(tag),JobSearch.class);
    break;
    case R.id.glzx:
    if (UserHelper.getUsername() == null || UserHelper.getUsername()=="") {
    setContainerView(String.valueOf(tag),Login.class);
    } else {
    setContainerView(String.valueOf(tag),PersonCenter.class);
    }
    break;
    case R.id.hyzp:
    setContainerView(String.valueOf(tag),TradeCategory.class);
    break;
    case R.id.zczx:
    setContainerView(String.valueOf(tag),NewsCategory.class);
    break;
    case R.id.more:
    setContainerView(String.valueOf(tag),About.class);
    break;
    }
    }
    });
    bundle = getIntent().getExtras();
    if (bundle !=null) {
    if (bundle.get("to")!=null) {
    if (bundle.get("to").equals("NewsCategory")) {
    zczx.setChecked(true);
    }
    else if(bundle.get("to").equals("TradesCategory")) {
    hyzp.setChecked(true);
    }
    }
    else {
    glzx.setChecked(true);
    }
    }
    else {

    zwss.setChecked(true);
    }

    }
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
    UserHelper.ExitDialog(Main.this);
    }
    return super.onKeyDown(keyCode, event);
    }
    //切换activity
    public void setContainerView(String id,Class<?> activity){
    mainTabContainer.removeAllViews();
    Intent mainTabIntent = new Intent(this,activity);
    if (bundle != null && bundle.get("from") !=null) {
    if (bundle.get("from").equals("JobDetail")) {
    mainTabIntent.putExtra("from", bundle.get("from").toString());
    mainTabIntent.putExtra("sn", bundle.get("sn").toString());
    }
    }
    mainTabContainer.addView(localActivityManager.startActivity(id, mainTabIntent).getDecorView());
    }
    @Override
    public boolean onDown(MotionEvent e) {
    // TODO Auto-generated method stub
    return false;
    }
    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
    float velocityY) {
    if (e1.getX() - e2.getX() > SnsConstant.getFlingMinDistance()
    && Math.abs(velocityX) > SnsConstant.getFlingMinVelocity()) {
    tag = Integer.parseInt(localActivityManager.getCurrentId());
    if (tag == 5) {
    tag = 1;
    } else {
    tag++;
    }
    go();

    } else if (e2.getX() - e1.getX() > SnsConstant.getFlingMinDistance()
    && Math.abs(velocityX) > SnsConstant.getFlingMinVelocity()) {
    tag = Integer.parseInt(localActivityManager.getCurrentId());
    if (tag ==1) {
    tag=5;
    }
    else {
    tag--;
    }
    go();
    }
    return false;
    }
    @Override
    public void onLongPress(MotionEvent e) {
    // TODO Auto-generated method stub

    }
    @Override
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
    float distanceY) {
    // TODO Auto-generated method stub
    return false;
    }
    @Override
    public void onShowPress(MotionEvent e) {
    // TODO Auto-generated method stub

    }
    @Override
    public boolean onSingleTapUp(MotionEvent e) {
    // TODO Auto-generated method stub
    return false;
    }
    @Override
    public boolean onTouch(View v, MotionEvent event) {
    return mGestureDetector.onTouchEvent(event);
    }
    private void go(){
    switch (tag) {
    case 1:
    zwss.setChecked(true);
    break;
    case 2:
    glzx.setChecked(true);
    break;
    case 3:
    hyzp.setChecked(true);
    break;
    case 4:
    zczx.setChecked(true);
    break;
    case 5:
    more.setChecked(true);
    break;
    }
    }
    public static class SnsConstant {
    private static final int FLING_MIN_DISTANCE = 20;
    private static final int FLING_MIN_VELOCITY = 0;

    public static int getFlingMinDistance() {
    return FLING_MIN_DISTANCE;
    }

    public static int getFlingMinVelocity() {
    return FLING_MIN_VELOCITY;
    }
    }
    }

    不足:碰到上下拉动的listview左右切换会失效!

  • 相关阅读:
    android 75 新闻列表页面
    android 74 下载文本
    android 73 下载图片
    android 72 确定取消对话框,单选对话框,多选对话框
    android 71 ArrayAdapter和SimpleAdapter
    android 70 使用ListView把数据显示至屏幕
    maven如何将本地jar安装到本地仓库
    Centos6.7搭建ISCSI存储服务器
    解决maven打包编译出现File encoding has not been set问题
    MySQL 解决 emoji表情 的方法,使用utf8mb4 字符集(4字节 UTF-8 Unicode 编码)
  • 原文地址:https://www.cnblogs.com/caishuowen/p/2340000.html
Copyright © 2011-2022 走看看