我正在尝试实现基于标签的视图,其中用户可以使用滑动手势在标签之间切换。但是,在滑动时会打开同一活动的多个实例。我怎么能阻止这个? 感谢
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;
}
答案 0 :(得分:0)
在Android支持库中查看ViewPager
。您在Android设备上看到的此表单的大多数UI都使用此组件。
每个页面都以Fragment
或Views布局实现,而不是完整的Activity。这允许在页面之间进行干净的滑动和动画,并避免出现您正在进行的多项活动。
要提供与标签的集成,您可以使用开箱即用的PagerTabStrip
,或者对于更传统的样式标签,请参阅SDK附带的Support4Demos示例中的代码示例。无论您在何处安装SDK,都可以在<sdk>/extras/android/compatibility/v4/samples/Support4Demos
找到它。 FragmentTabsPager
演示是您正在寻找的。 p>