Android的 - 活动之间刷卡 [英] android - swiping between activities

查看:147
本文介绍了Android的 - 活动之间刷卡的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我开发一个当地报纸Android应用和ATM我想实现物品滑动切换。我的主要活动是HNappActivity和文章显示活动AcrticleActivity。我的问题是,刷卡只是不会工作,我很绝望,因为我不知道什么是错。这里是code,其中刷卡实现:

I'm developing android app for a local newspapers and atm I'm trying to implement swiping between articles. My main activity is HNappActivity and activity for article showing is AcrticleActivity. My problem is, that the swiping just wont work and I'm desperate because I have no idea whats wrong. Here's code, where swiping is implemented:

public class ArticleActivity extends SherlockActivity {

int hnCatIndex, hnArtIndex;
WebView hnWebView;

private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
private GestureDetector gestureDetector;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
        setContentView(R.layout.article);

    hnCatIndex = getIntent().getExtras().getInt("catIndex", 0);
    hnArtIndex = getIntent().getExtras().getInt("artIndex", 0);
    Article article = Source.getInstance().getCategory(hnCatIndex).getArticle(hnArtIndex);

    hnWebView=(WebView)findViewById(R.id.webview);
    hnWebView.loadData(article == null ? "" : article.getBody(), "text/html",
                    "utf-8");
    gestureDetector = new GestureDetector(new MyGestureDetector());
    View articleview=(View) findViewById(R.id.article_main);

    articleview.setOnTouchListener(new View.OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            if (gestureDetector.onTouchEvent(event)) {
                return true;
            }
            return false;
        }
    });
}

    class MyGestureDetector extends SimpleOnGestureListener {
        @Override
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {


            if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) {
                return false;
            }

            // right to left swipe
            if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
            hnArtIndex++;
            Intent intent = new Intent(ArticleActivity.this.getBaseContext(), ArticleActivity.class);
            intent.putExtra("catIntext",hnCatIndex);
            intent.putExtra("artIndex",hnArtIndex);
            startActivity(intent);          
            ArticleActivity.this.overridePendingTransition(
            R.anim.slide_in_right,
            R.anim.slide_out_left
            );
            // right to left swipe
            }  else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                if (hnArtIndex==1) {
                    Intent intent = new Intent(ArticleActivity.this.getBaseContext(), HNappActivity.class);
                    startActivity(intent);
                    }
                else {
                    hnArtIndex--;
                    Intent intent = new Intent(ArticleActivity.this.getBaseContext(), ArticleActivity.class);
                    intent.putExtra("catIntext",hnCatIndex);
                    intent.putExtra("artIndex",hnArtIndex);
                    startActivity(intent);
                }
            ArticleActivity.this.overridePendingTransition(
            R.anim.slide_in_left, 
            R.anim.slide_out_right
            );
            }

            return false;
        }
            @Override
            public boolean onDown(MotionEvent e) {
                    return true;
            }
}   

}

推荐答案

我甚至没有看过code,问题是你想活动之间刷卡。
你应该尝试的片段,在同一个活动中的所有片段之间刷卡。

I didn't even read the code, the problem is that you're trying to swipe between activities. You should be trying to swipe between fragments, all fragments in the same activity.

请参阅:
http://developer.android.com/reference/android/support/v4/app/FragmentPagerAdapter.html
http://developer.android.com/reference/android/support/v4/view/ViewPager.html

see: http://developer.android.com/reference/android/support/v4/app/FragmentPagerAdapter.html http://developer.android.com/reference/android/support/v4/view/ViewPager.html

编辑:

    private WebView hnWebView;
    @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.webViewFragment, null);
        hnWebView=(WebView)v.findViewById(R.id.webview);
        return v;
    }

这篇关于Android的 - 活动之间刷卡的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆