所以我有一個numberpicker和日期選擇器,萬物除了當我的看法與導遊庫https://github.com/worker8/TourGuide相關工作,什麼可能是數字選擇器空指針(與Tourguide)的原因?
FATAL EXCEPTION: main
java.lang.NullPointerException
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2988)
at android.view.View.getDisplayList(View.java:12428)
at android.view.View.getDisplayList(View.java:12545)
at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1184)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2446)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2306)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2109)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1127)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4606)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:747)
at android.view.Choreographer.doCallbacks(Choreographer.java:567)
at android.view.Choreographer.doFrame(Choreographer.java:536)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:733)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:153)
at android.app.ActivityThread.main(ActivityThread.java:4987)
上述錯誤是當我點擊選擇器的頂部或底部的選擇,只拋出不是當我滑動選取器時,它很奇怪,因爲當導遊關閉時,錯誤不會被拋出。
我稱這種方法爲我所有的numberpicker和日期選擇器
public void pickerfix(View np) {
np.setSaveFromParentEnabled(false);
np.setSaveEnabled(true);
if (np.getId() == R.id.datepicker) {
((DatePicker) np).setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
} else {
((NumberPicker) np).setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
}
}
,這行代碼上的每個onValueChange駁回導遊..
if(askTutorial == 1){
tuts.dismissTourguide();}
什麼可能是空指針的原因?我試着把一個onclicklistener放到採集器上,並把解僱線但沒有運氣。
!!!加入 所以這是我的日期選擇
Calendar c = Calendar.getInstance();
int d = c.get(Calendar.YEAR);
c.set(Calendar.YEAR, d - 2);
Calendar c2 = Calendar.getInstance();
c2.set(Calendar.YEAR, d - 130);
datePicker.setMinDate(c2.getTimeInMillis());
datePicker.setMaxDate(c.getTimeInMillis());
datePicker.init(c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH), new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view,
int year, int monthOfYear, int dayOfMonth) {
if(askTutorial == 1){
tuts.dismissTourguide();}
}
});
代碼和我的號碼選擇器
pickerfix(npKg);
npKg.setMinValue(10);
npKg.setMaxValue(650);
npKg.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker numberPicker, int i, int i1) {
if(askTutorial == 1){
tuts.dismissTourguide();}
}
});
一般我有超過1個numberpicker但我認爲這會做,。
我的導遊顯示被稱爲與解僱電話相同的不同類別。
public void showProfileTutorial(View v, String bgcolor, int txt){
Animation animation = new TranslateAnimation(0f, 0f, 200f, 0f);
animation.setDuration(1000);
animation.setFillAfter(true);
animation.setInterpolator(new BounceInterpolator());
Animation exitAnimation = new AlphaAnimation(1f, 0f);
exitAnimation.setDuration(200);
exitAnimation.setFillAfter(true);
String[] splitter = texts[txt].split(":");
toolTip = new ToolTip()
.setTitle(splitter[0])
.setDescription(splitter[1])
.setTextColor(Color.parseColor("#bdc3c7"))
.setBackgroundColor(Color.parseColor("#30BA8F"))
.setShadow(true)
.setGravity(grav1| grav2)
.setEnterAnimation(animation);
overlay = new Overlay()
.disableClick(disableClick)
.setBackgroundColor(Color.parseColor(bgcolor))
.setStyle(Overlay.Style.Circle)
.setExitAnimation(exitAnimation);
pointer = new Pointer().setColor(Color.RED).setGravity(Gravity.CENTER | Gravity.CENTER);
mTourGuideHandler = TourGuide.init(activity).with(TourGuide.Technique.Click);
mTourGuideHandler.setPointer(null);
mTourGuideHandler.setToolTip(toolTip);
mTourGuideHandler.setOverlay(overlay);
mTourGuideHandler.playOn(v);
}
public void dismissTourguide(){
try{
//.e("Before", "clean");
mTourGuideHandler.cleanUp();
//Log.e("After", "clean");
}catch (Exception e){
}
}
您需要在您的活動類 – Inducesmile
@NollyJ增加了一些代碼添加更多的代碼,雖然我刪除了一些不必要或不相關的方法調用,只是告訴我,如果我仍然失去了一些東西.. – johnguild