0
我想在此基礎上的孩子在我ViewFlipper設置我的文字中TextSwitcher當前具有焦點和我不斷收到一個空指針。 這可能也可能不重要,但我有三個文本切換器在一個活動,每個與不同的視圖工廠。ViewSwitcher NullPointerException異常
public void onSwipe(int direction)
{
switch(direction)
{
case SimpleGestureFilter.SWIPE_LEFT :
UpdateTextSwitcher();
if(flipper.getChildAt(flipper.getChildCount()-1).hasFocus())
{ flipper.stopFlipping();
Log.i("ARRAY_OnCreate", "True focus 1");
}
else {
flipper.setInAnimation(inFromRightAnimation());
flipper.setOutAnimation(outToLeftAnimation());
flipper.showNext();
}
break;
case SimpleGestureFilter.SWIPE_RIGHT :
if(flipper.getChildAt(0).hasFocus())
{
flipper.stopFlipping();
}
else{
flipper.setInAnimation(inFromLeftAnimation());
flipper.setOutAnimation(outToRightAnimation());
flipper.showPrevious();
}
break;
case SimpleGestureFilter.SWIPE_DOWN :
default:
break;
}
}
private void UpdateTextSwitcher()
{
if (flipper.getChildAt(0).hasFocus())
{
lSwitcher.setText("R.string.s1");
mSwitcher.setText("R.string.s2");
rSwitcher.setText("R.string.s3");
}
else
{
lSwitcher.removeAllViews();
mSwitcher.setText("R.string.s2");
rSwitcher.setText("R.string.s1");
}
}
logcat的顯示
07-22 00:47:48.812: ERROR/AndroidRuntime(11141): FATAL EXCEPTION: main
07-22 00:47:48.812: ERROR/AndroidRuntime(11141): java.lang.NullPointerException
07-22 00:47:48.812: ERROR/AndroidRuntime(11141): at android.widget.TextSwitcher.setText(TextSwitcher.java:78)
07-22 00:47:48.812: ERROR/AndroidRuntime(11141): at com.tmm.android.rssreader.RssActivity.UpdateTextSwitcher(RssActivity.java:134)
07-22 00:47:48.812: ERROR/AndroidRuntime(11141): at com.tmm.android.rssreader.RssActivity.onSwipe(RssActivity.java:278)
07-22 00:47:48.812: ERROR/AndroidRuntime(11141): at com.tmm.android.rssreader.SimpleGestureFilter.onFling(SimpleGestureFilter.java:119)
07-22 00:47:48.812: ERROR/AndroidRuntime(11141): at android.view.GestureDetector.onTouchEvent(GestureDetector.java:568)
07-22 00:47:48.812: ERROR/AndroidRuntime(11141): at com.tmm.android.rssreader.SimpleGestureFilter.onTouchEvent(SimpleGestureFilter.java:47)
07-22 00:47:48.812: ERROR/AndroidRuntime(11141): at com.tmm.android.rssreader.RssActivity.dispatchTouchEvent(RssActivity.java:224)
07-22 00:47:48.812: ERROR/AndroidRuntime(11141): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1675)
07-22 00:47:48.812: ERROR/AndroidRuntime(11141): at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2194)
07-22 00:47:48.812: ERROR/AndroidRuntime(11141): at android.view.ViewRoot.handleMessage(ViewRoot.java:1878)
07-22 00:47:48.812: ERROR/AndroidRuntime(11141): at android.os.Handler.dispatchMessage(Handler.java:99)
07-22 00:47:48.812: ERROR/AndroidRuntime(11141): at android.os.Looper.loop(Looper.java:130)
07-22 00:47:48.812: ERROR/AndroidRuntime(11141): at android.app.ActivityThread.main(ActivityThread.java:3683)
07-22 00:47:48.812: ERROR/AndroidRuntime(11141): at java.lang.reflect.Method.invokeNative(Native Method)
07-22 00:47:48.812: ERROR/AndroidRuntime(11141): at java.lang.reflect.Method.invoke(Method.java:507)
07-22 00:47:48.812: ERROR/AndroidRuntime(11141): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
07-22 00:47:48.812: ERROR/AndroidRuntime(11141): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
07-22 00:47:48.812: ERROR/AndroidRuntime(11141): at dalvik.system.NativeStart.main(Native Method)
嗯需要
break
。我不知道在引用資源時引用是必要的。我這樣做了好幾次。除此之外,我嘗試直接插入字符串,例如'mSwitcher.setText(「MyString」)',並且仍然沒有運氣 – ababzymSwitcher.setText(「R.string.s2」)會在屏幕上顯示R.string。 s2,就是這樣,而不是資源內部的字符串。 –
我明白你的意思了,這是我在發佈問題時犯的一個錯誤。但是,這不應該是我得到一個'空指針'的原因,是嗎? – ababzy