2013-05-06 54 views
1

我想构建一个调度应用程序,我试图告诉我的应用程序区分滚动和点击日期。当我滚动到某个月时,setOnDateChangeListener会在我不打算使用时触发。CalendarView:区分水龙头

所以对于我试过或收集的东西:我尝试实现onGestureListener(不知道这是否是正确的方法)并使用OnSingleTapUp方法来确定滚动和选择日期。我只是尝试将setOnDateChangeListener方法放入OnSingleTapUp方法,但我不明白,因为当我选择日期时,我在技术上试图调用setOnDateChangeListener。

我真的很感谢任何指导或转介到另一个类似的职位。

感谢

崖乙

import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.view.GestureDetector; 
import android.view.GestureDetector.OnDoubleTapListener; 
import android.view.GestureDetector.OnGestureListener; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.View.OnTouchListener; 
import android.widget.CalendarView; 
import android.widget.CalendarView.OnDateChangeListener; 

public class MainActivity extends Activity implements OnGestureListener{ 

//Setting variables 
CalendarView calendar; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    calendar = (CalendarView) findViewById(R.id.calendarView1); 


} 

@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) { 
    // TODO Auto-generated method stub 
    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 

      calendar.setOnDateChangeListener(new OnDateChangeListener() { 

     @Override 
     public void onSelectedDayChange(CalendarView view, int year, 
       int month, int dayOfMonth) { 
      // TODO Auto-generated method stub 

      Intent intent = new Intent(); 
      intent.setClass(MainActivity.this, TaskSetup.class); 
      intent.putExtra("data", dayOfMonth); 
      startActivity(intent);    
     } 
    }); 
    return false; 
} 
} 

回答

0

尝试return true;onSingleTapUp方法。

谢谢。

+0

嘿,我试过,但没有得到它的工作 – cben90 2013-05-06 20:44:05