滑动手势会启动同一活动的多个实例

时间:2012-08-26 16:43:03

标签: android android-activity swipe-gesture

我正在尝试实现基于标签的视图,其中用户可以使用滑动手势在标签之间切换。但是,在滑动时会打开同一活动的多个实例。我怎么能阻止这个? 感谢

public boolean onTouch(View v, MotionEvent event) {
    switch(event.getAction() & MotionEvent.ACTION_MASK){

    case MotionEvent.ACTION_DOWN:
        initialx=event.getX();
        initialy=event.getY();
        break;

    case MotionEvent.ACTION_UP:
        break;

    case MotionEvent.ACTION_MOVE:
        finalx=event.getX();
        finaly=event.getY();

        if (initialx>(finalx+150.0)){

            RadioGroup Options = (RadioGroup) findViewById(R.id.vOptions);
            int selectedId = Options.getCheckedRadioButtonId();
            final EditText QuestionNo = (EditText)findViewById(R.id.vnumberofquestions);
            final EditText Time = (EditText)findViewById(R.id.vtimeperquestion);

            if ((QuestionNo.getText().toString().equals(" ")) || (Time.getText().toString().equals("")) ||(selectedId==-1)) { 
                Intent intenta=new Intent(VerbalSelect.this, TabDisplay.class );
                intenta.putExtra("index", 0);
                startActivity(intenta);
            }
            else {   
                RadioButton selectedButton = (RadioButton) findViewById(selectedId);
                String testtype = (String) selectedButton.getText(); 
                int questionno = Integer.parseInt(QuestionNo.getText().toString());
                int timeperquestion = Integer.parseInt(Time.getText().toString());
                long timeroffset = questionno*timeperquestion;
                Intent intent=new Intent(VerbalSelect.this, Main.class);

                intent.putExtra("testtype", testtype);
                intent.putExtra("timeroffset",timeroffset);
                intent.putExtra("questionno","1");
                intent.putExtra("questionlimit", questionno);
                startActivity(intent);
            }
            break;
        }
    }
    return true;
}

1 个答案:

答案 0 :(得分:0)

在Android支持库中查看ViewPager。您在Android设备上看到的此表单的大多数UI都使用此组件。

每个页面都以Fragment或Views布局实现,而不是完整的Activity。这允许在页面之间进行干净的滑动和动画,并避免出现您正在进行的多项活动。

要提供与标签的集成,您可以使用开箱即用的PagerTabStrip,或者对于更传统的样式标签,请参阅SDK附带的Support4Demos示例中的代码示例。无论您在何处安装SDK,都可以在<sdk>/extras/android/compatibility/v4/samples/Support4Demos找到它。 FragmentTabsPager演示是您正在寻找的。