java - Android Gridview with Edittext -
i want display edittext , textview in gridview item.and override baseadapter.when run it, it's nullpointer. i've checked datainput .it's ok , activity received right data.
markviewactivity.java
package com.find.voter; import java.util.arraylist; import java.util.hashmap; import android.app.activity; import android.app.alertdialog; import android.content.intent; import android.os.bundle; import android.view.keyevent; import android.view.view; import android.view.view.onclicklistener; import android.widget.button; import android.widget.gridview; import android.widget.textview; public class markviewactivity extends activity{ private gridview gridview; private arraylist<string>list; private button reset; private button confirm; private int checknum; private textview toptextshow; private int num1; private gridadapter madapter; private boolean havecookie; private double []cookie; protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.gridview2); gridview=(gridview)findviewbyid(r.layout.gridview2); reset=(button)findviewbyid(r.id.reset2); confirm=(button)findviewbyid(r.id.confirm2); toptextshow=(textview)findviewbyid(r.id.checknumshow2); list=new arraylist<string>(); checknum=0; getinput(); madapter=new gridadapter(list, this, num1,cookie); //here !!!nullpointer gridview.setadapter(madapter); } private void getinput(){ bundle receivebundle=this.getintent().getextras(); cookie=receivebundle.getdoublearray("marklistcookie"); num1=receivebundle.getint("num1"); system.out.println(num1+"num1"); //get num1 cookie=new double[num1]; for(int i=0;i<num1;i++){ list.add((i+1)+""); } } private void markcheck(){ int t=num1-checknum; if(t>0){ new alertdialog.builder(markviewactivity.this).settitle("noteice").setmessage("ddddddd").setpositivebutton("ok", null).show(); }else{ intent send=new intent(); bundle bundle=new bundle(); bundle.putdoublearray("markanswer", cookie); send.putextra("ans2", bundle); markviewactivity.this.setresult(2,send); markviewactivity.this.finish(); } } private void markstate(){ int t=num1-checknum; if(t>0) toptextshow.settext("test1"); else toptextshow.settext("test2"); } private void datachanged(){ madapter.notifydatasetchanged(); markstate(); } gridadapter.java
package com.find.voter; import java.util.arraylist; import java.util.hashmap; import android.content.context; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.baseadapter; import android.widget.checkbox; import android.widget.edittext; import android.widget.textview; public class gridadapter extends baseadapter{ private arraylist<string>list; private static double ismarked[]; private context context; private layoutinflater infalter=null; private int num1; public gridadapter(arraylist<string>list,context context,int num1,double[]xx) { this.context=context; this.list=list; infalter=layoutinflater.from(context); ismarked=xx; this.num1=num1; } @override public int getcount() { // todo auto-generated method stub return list.size(); } @override public object getitem(int position) { // todo auto-generated method stub return list.get(position); } @override public long getitemid(int position) { // todo auto-generated method stub return position; } public static double [] getismarked(){return ismarked;} public static void setismarked(double [] m){ gridadapter.ismarked=m; } @override public view getview(int position, view convertview, viewgroup parent) { viewholder holder=null; if(convertview==null){ holder=new viewholder(); convertview=infalter.inflate(r.layout.itemgrid2, null); holder.tv=(textview)convertview.findviewbyid(r.id.grid_tv); holder.et=(edittext)convertview.findviewbyid(r.id.grid_edittext); convertview.settag(holder); }else{ holder=(viewholder)convertview.gettag(); } holder.tv.settext(list.get(position)); holder.et.settext(getismarked()[position]+""); return convertview; } public static class viewholder { textview tv; edittext et; } }
itemgrid2.xml
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <textview android:id="@+id/grid_tv" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:textsize="50sp" android:layout_weight="1" /> <edittext android:id="@+id/grid_edittext" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" android:inputtype="numberdecimal" > <requestfocus /> </edittext> </linearlayout> gridview2.xml
<?xml version="1.0" encoding="utf-8"?> <relativelayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <textview android:id="@+id/checknumshow2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:textsize="30sp" android:text="" /> <linearlayout android:id="@+id/linear2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" > <button android:id="@+id/reset2" android:layout_width="wrap_content" android:layout_height="wrap_content" style="?android:attr/buttonbarbuttonstyle" android:textsize="30sp" android:text="@string/reset" /> <button android:id="@+id/confirm2" android:layout_width="wrap_content" android:layout_height="wrap_content" style="?android:attr/buttonbarbuttonstyle" android:textsize="30sp" android:text="@string/confirm" /> </linearlayout> <gridview android:id="@+id/grid" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@+id/linear2" android:numcolumns="auto_fit" android:verticalspacing="10dp" android:horizontalspacing="10dp" android:columnwidth="90dp" android:stretchmode="columnwidth" android:gravity="center" />
logcat
08-19 10:16:18.412: e/androidruntime(9923): fatal exception: main 08-19 10:16:18.412: e/androidruntime(9923): java.lang.runtimeexception: unable start activity componentinfo{com.find.voter/com.find.voter.markviewactivity}: java.lang.nullpointerexception 08-19 10:16:18.412: e/androidruntime(9923): @ android.app.activitythread.performlaunchactivity(activitythread.java:2180) 08-19 10:16:18.412: e/androidruntime(9923): @ android.app.activitythread.handlelaunchactivity(activitythread.java:2230) 08-19 10:16:18.412: e/androidruntime(9923): @ android.app.activitythread.access$600(activitythread.java:141) 08-19 10:16:18.412: e/androidruntime(9923): @ android.app.activitythread$h.handlemessage(activitythread.java:1234) 08-19 10:16:18.412: e/androidruntime(9923): @ android.os.handler.dispatchmessage(handler.java:99) 08-19 10:16:18.412: e/androidruntime(9923): @ android.os.looper.loop(looper.java:137) 08-19 10:16:18.412: e/androidruntime(9923): @ android.app.activitythread.main(activitythread.java:5041) 08-19 10:16:18.412: e/androidruntime(9923): @ java.lang.reflect.method.invokenative(native method) 08-19 10:16:18.412: e/androidruntime(9923): @ java.lang.reflect.method.invoke(method.java:511) 08-19 10:16:18.412: e/androidruntime(9923): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:793) 08-19 10:16:18.412: e/androidruntime(9923): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:560) 08-19 10:16:18.412: e/androidruntime(9923): @ dalvik.system.nativestart.main(native method) 08-19 10:16:18.412: e/androidruntime(9923): caused by: java.lang.nullpointerexception 08-19 10:16:18.412: e/androidruntime(9923): @ com.find.voter.markviewactivity.oncreate(markviewactivity.java:44) 08-19 10:16:18.412: e/androidruntime(9923): @ android.app.activity.performcreate(activity.java:5104) 08-19 10:16:18.412: e/androidruntime(9923): @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1080) 08-19 10:16:18.412: e/androidruntime(9923): @ android.app.activitythread.performlaunchactivity(activitythread.java:2144) 08-19 10:16:18.412: e/androidruntime(9923): ... 11 more
this line:
gridview=(gridview)findviewbyid(r.layout.gridview2); is incorrect. want refer r.id.grid
Comments
Post a Comment