2014-04-24 3 views
0

안드로이드 용 라이브러리 "DraggableGridView"를 사용 중입니다. 일부 이미지를 수정하여 이미지를 만들려고하고 있지만 앱이 계속 충돌을 일으키지 만 여기에 코드를 남겨 두었습니다. 사람이 나를 도울 수있다 : SAndroid GridView 끌어서 놓기 ImageView

public class HomeFragment extends Fragment { 

    private ImageView one; 
    private ImageView two; 
    private DraggableGridView dgv; 


    public HomeFragment(){} 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 


     View rootView = inflater.inflate(R.layout.fragment_home, container, false); 

     dgv = (DraggableGridView)rootView.findViewById(R.id.dgv); 

     one =(ImageView)rootView.findViewById(R.id.moodleLogo); 
     two =(ImageView)rootView.findViewById(R.id.aulawebLogo); 

     return rootView; 
    } 

    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
     setHasOptionsMenu(true); 

     setListeners(); 

    } 

    private void setListeners() { 


     dgv.setOnItemClickListener(new OnItemClickListener() { 

      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3){ 

       String url = (String)dgv.getChildAt(arg2).getTag(); 
       Intent i = new Intent(Intent.ACTION_VIEW); 
       i.setData(Uri.parse(url)); 
       startActivity(i); 
      } 
     }); 

    } 

로그 캣는 말한다 : 사전에

04-24 23:46:53.860: E/InputEventReceiver(20805): Exception dispatching input event. 
04-24 23:46:53.890: E/AndroidRuntime(20805): FATAL EXCEPTION: main 
04-24 23:46:53.890: E/AndroidRuntime(20805): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0 
04-24 23:46:53.890: E/AndroidRuntime(20805): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at java.util.ArrayList.get(ArrayList.java:304) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at com.animoto.android.views.DraggableGridView.animateGap(DraggableGridView.java:331) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at com.animoto.android.views.DraggableGridView.onTouch(DraggableGridView.java:253) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.View.dispatchTouchEvent(View.java:7345) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2412) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2147) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2418) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2161) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2418) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2161) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2418) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2161) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2418) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2161) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2418) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2161) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2418) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2161) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2139) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1476) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.app.Activity.dispatchTouchEvent(Activity.java:2487) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2087) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.View.dispatchPointerEvent(View.java:7535) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3415) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3347) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4456) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4434) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4538) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:163) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:4506) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:4557) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.Choreographer.doCallbacks(Choreographer.java:555) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.Choreographer.doFrame(Choreographer.java:523) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.os.Handler.handleCallback(Handler.java:615) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.os.Handler.dispatchMessage(Handler.java:92) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.os.Looper.loop(Looper.java:137) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at android.app.ActivityThread.main(ActivityThread.java:4921) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at java.lang.reflect.Method.invokeNative(Native Method) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at java.lang.reflect.Method.invoke(Method.java:511) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794) 
04-24 23:46:53.890: E/AndroidRuntime(20805): at dalvik.system.NativeStart.main(Native Method) 
04-24 23:46:53.940: E/android.os.Debug(3368): [email protected] > dumpstate -k -t -z -d -o /data/log/dumpstate_app_error 

덕분에

답변

0

는 사용하지 마십시오

String url = (String)dgv.getChildAt(arg2).getTag(); 

getChildAt 메서드는 위치 (arg2)와 아무 관련이없는 int를 사용합니다. 대신 어댑터를 쿼리하여 URL을 찾으십시오. 어댑터를 가정

String의 포함

String url = arg0.getAdapter().getItem(arg2); 
+0

내가 어떤 어댑터를 사용하지 않는, 그리고 내가 imageviews를 재 배열 할 때 그 핸들러는 확인 ... 충돌 아이오와을 작동하는 것. 나는 그 말을 잊어 버렸다. – user1903