임 그림처럼 UI를 만들기 :. SketchGRIDVIEW 항목에 2 레이아웃을 팽창 = CRASH :(
그래서 나는 그것이 작은 메뉴로 내용을 변경하는 GRIDVIEW 항목을 클릭하면 그
?그것은 잘 된 unti 작동합니다 adapter.notifyDataSetChanged() :이 접근하는 올바른 방법은 무엇
는
내 솔루션, 클릭에 를 항목을 팽창과 함께 새로 고침, 2 개 레이아웃이었다 l 아래로 스크롤하여 (항목이 보이지 않을 때까지) 그리고 나서 충돌합니다. 내가 그것을 충돌 계속 시도 상관없이
public View getView(int position, View convertView, ViewGroup parent) { View row = convertView; RecordHolder holder = null; Item item = data.get(position); LayoutInflater inflater = ((Activity) context).getLayoutInflater(); if (row == null) { row = inflater.inflate(layoutResourceId, parent, false); holder = new RecordHolder(); holder.txtTitle = (TextView) row.findViewById(R.id.item_text); holder.imageItem = (ImageView) row.findViewById(R.id.item_image); row.setTag(holder); } else { holder = (RecordHolder) row.getTag(); } if(item.showMenu == true && item.menuShown == false) { item.menuShown = true; row = inflater.inflate(layoutResourceId_menu, parent, false); holder = new RecordHolder(); holder.button1 = (Button) row.findViewById(R.id.button1); holder.button2 = (Button) row.findViewById(R.id.button2); row.setTag(holder); } if(item.showMenu == true && item.menuShown == true) { holder.button1.setText("asdsad"); holder.button2.setText("asdasdd"); } if(item.showMenu == false && item.menuShown == true) { row = inflater.inflate(layoutResourceId, parent, false); holder = new RecordHolder(); holder.txtTitle = (TextView) row.findViewById(R.id.item_text); holder.imageItem = (ImageView) row.findViewById(R.id.item_image); row.setTag(holder); holder.txtTitle.setText(item.getTitle()); holder.imageItem.setImageBitmap(item.getImage()); } if(item.showMenu == false && item.menuShown == false) { holder.txtTitle.setText(item.getTitle()); holder.imageItem.setImageBitmap(item.getImage()); } return row;
}
:
이
내의 getView() 코드입니다. 내가이 일을 제대로하고 있습니까?06-21 17:37:39.735 3308-3308/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.menu_grid_view_page, PID: 3308
java.lang.NullPointerException
at com.example.menu_grid_view_page.CustomGridViewAdapter.getView(CustomGridViewAdapter.java:91)
at android.widget.AbsListView.obtainView(AbsListView.java:2240)
at android.widget.GridView.makeAndAddView(GridView.java:1345)
at android.widget.GridView.makeRow(GridView.java:345)
at android.widget.GridView.fillDown(GridView.java:287)
at android.widget.GridView.fillGap(GridView.java:247)
at android.widget.AbsListView.trackMotionScroll(AbsListView.java:5136)
at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:4247)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
at android.view.Choreographer.doCallbacks(Choreographer.java:574)
at android.view.Choreographer.doFrame(Choreographer.java:543)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5081)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:781)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
당신이 충돌과 로그 캣 출력을 게시 할 수 있습니까? – michaelcarrano
나는 그것을 얻었다! 지금 내 메시지에 새 메시지를 추가하려고합니다. – user2551102