//hi i am trying to retrieve the data from database and display in my activity.but it is giving error fatal exception main.here when i click showall button all student details shouls get dispalyed.
public class four extends Activity {
Button showall;
MyDataBase mydb;
ListView lv;
int str;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.snd);
mydb=new MyDataBase(four.this);
mydb.openDB();
showall.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
Log.i("INFO","ALL DETAILS");
ArrayList<HashMap<String,String>> p2 = mydb.getAllSDetails();
lv = (ListView)findViewById(R.id.listView1);
//coloum.xml contains four text view,and string contains my coloum names.
SimpleAdapter mSchedule = new SimpleAdapter(four.this, p2, R.layout.column,
new String[] {"_Sid","FName", "LName","clss","sec"}, new int[] {R.id.txtfname, R.id.txtlname,R.id.txtage,R.id.txtqual});
lv.setAdapter(mSchedule);
lv.setOnItemClickListener(select);
}
});
}
public OnItemClickListener select=new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
int idd[] = mydb.gettingId();
str = idd[position];
}
};
}
//我的错误日志。我无法解决问题。我的程序中有什么问题。我的错误日志。我无法解决问题。我的程序中有什么问题。任何人都可以指导我为什么会收到以下错误。
2-27 08:26:12.098: I/INFO(381): ALL DETAILS
12-27 08:26:12.098: I/INFO(381): database creation
12-27 08:26:12.108: I/INFO(381): Opening database
12-27 08:26:12.148: I/INFO(381): ALL DETAILS
12-27 08:26:12.158: D/AndroidRuntime(381): Shutting down VM
12-27 08:26:12.158: W/dalvikvm(381): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
12-27 08:26:12.180: E/AndroidRuntime(381): FATAL EXCEPTION: main
12-27 08:26:12.180: E/AndroidRuntime(381): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android/com.android.four}: java.lang.NullPointerException
12-27 08:26:12.180: E/AndroidRuntime(381): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
12-27 08:26:12.180: E/AndroidRuntime(381): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
12-27 08:26:12.180: E/AndroidRuntime(381): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
12-27 08:26:12.180: E/AndroidRuntime(381): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
12-27 08:26:12.180: E/AndroidRuntime(381): at android.os.Handler.dispatchMessage(Handler.java:99)
12-27 08:26:12.180: E/AndroidRuntime(381): at android.os.Looper.loop(Looper.java:123)
12-27 08:26:12.180: E/AndroidRuntime(381): at android.app.ActivityThread.main(ActivityThread.java:4627)
12-27 08:26:12.180: E/AndroidRuntime(381): at java.lang.reflect.Method.invokeNative(Native Method)
12-27 08:26:12.180: E/AndroidRuntime(381): at java.lang.reflect.Method.invoke(Method.java:521)
12-27 08:26:12.180: E/AndroidRuntime(381): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
12-27 08:26:12.180: E/AndroidRuntime(381): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
12-27 08:26:12.180: E/AndroidRuntime(381): at dalvik.system.NativeStart.main(Native Method)
12-27 08:26:12.180: E/AndroidRuntime(381): Caused by: java.lang.NullPointerException
12-27 08:26:12.180: E/AndroidRuntime(381): at com.android.four.onCreate(four.java:40)
12-27 08:26:12.180: E/AndroidRuntime(381): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-27 08:26:12.180: E/AndroidRuntime(381): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
12-27 08:26:12.180: E/AndroidRuntime(381): ... 11 more
答案 0 :(得分:0)
我会在这里。当您运行android时出错,您将始终收到堆栈跟踪。从那里,您可以决定查看给出错误的特定代码行。例如,根据您的情况:
12-27 08:26:12.180: E/AndroidRuntime(381): FATAL EXCEPTION: main
12-27 08:26:12.180: E/AndroidRuntime(381): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android/com.android.four}: java.lang.NullPointerException
当您尝试使用该对象时,此错误会告诉您(通过查看它的行的末尾)对象为空。
现在,您可能会想:“嗯...什么线路产生错误?”。幸运的是,它通过向下看堆栈跟踪告诉你:
12-27 08:26:12.180: E/AndroidRuntime(381): Caused by: java.lang.NullPointerException
12-27 08:26:12.180: E/AndroidRuntime(381): at com.android.four.onCreate(four.java:40)
当您收到错误时,请查看该消息。如果您不理解它的含义,请谷歌确切的错误。在您的情况下java.lang.NullPointerException
。之后,再次返回到堆栈跟踪,通过查找Caused by: {the error message}
来查看实际生成此错误的行。就在该行之后,您将看到产生错误消息的实际行。返回到您的代码并检查该行中的代码以及生成此类错误消息的原因。在您的情况下,它是com.android.four.onCreate(four.java:40)
。这意味着:
位于
line 40
method onCreate()
的{{1}}位于class four
的{{1}}处的某处产生错误。
此时,如果您仍然不知道为什么该特定行会产生错误,您可以在这里或其他地方询问,添加您已经获得的信息(错误行,错误消息,您已经做了什么)检查为什么是错误)。通过提供这些信息,我相信你会得到更好的答案,因为人们会发现你已经做了一些努力来找到问题。
答案 1 :(得分:0)
我认为您尚未初始化按钮“ showall ”。
像
这样的东西showall=(Button)findviewbyid(R.id.yourbuttonid);
你错过了吗?
答案 2 :(得分:0)
java.lang.NullPointerException
隐藏了您的错误
该怎么办?
1.line 40找到它。
2.此时检查声明(您可能刚刚错过了初始化)
3.运行您的代码无错误
这是第40行
public OnItemClickListener select=new AdapterView.OnItemClickListener()
我还可以建议您使用Cursor从数据库中检索您的值。在主类中声明游标(也是初始化),然后使用它来获取值。