打开新的活动我有这段代码来显示来自我的图书数据库的详细信息,当我点击列表中的项目在另一个活动工作正常.. 我用这个代码这样做.. 但它没有工作! 有人可以告诉我什么是我的代码错? 我希望当我点击项目它的细节活动,并显示所选书籍的其余细节。 请帮助:(! 谢谢!click on item in viewList ..从数据库android
package com.example.test;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.TextView;
public class BookDetails extends Activity {
protected TextView name;
protected TextView author;
protected TextView isbn;
protected TextView copy;
protected TextView info;
protected int bookId;
private DbHelper mHelper;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.book_details);
bookId = getIntent().getIntExtra("bID", 0);
SQLiteDatabase db = mHelper.getWritableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM "+ DbHelper.TABLE_NAME, null);
if (cursor.getCount() == 1)
{
cursor.moveToFirst();
name = (TextView) findViewById(R.id.name);
name.setText(cursor.getString(cursor.getColumnIndex("KEY_NAME")));
author = (TextView) findViewById(R.id.author);
author.setText(cursor.getString(cursor.getColumnIndex("KEY_AUTHOR")));
isbn = (TextView) findViewById(R.id.isbn);
isbn.setText(cursor.getString(cursor.getColumnIndex("KEY_ISBN")));
copy = (TextView) findViewById(R.id.copy);
copy.setText(cursor.getString(cursor.getColumnIndex("KEY_COPIES")));
info = (TextView) findViewById(R.id.info);
info.setText(cursor.getString(cursor.getColumnIndex("KEY_INFO")));
}
}
}
这里是DisplayActivity.java
package com.example.test;
import java.util.ArrayList;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class DisplayActivity extends Activity {
private DbHelper mHelper;
private SQLiteDatabase dataBase;
private ListAdapter adapter;
private ArrayList<String> bookId = new ArrayList<String>();
private ArrayList<String> book_Name = new ArrayList<String>();
private ArrayList<String> book_Author = new ArrayList<String>();
private ArrayList<String> book_Info = new ArrayList<String>();
private ArrayList<String> book_Isbn = new ArrayList<String>();
private ArrayList<String> book_Copy = new ArrayList<String>();
public static String bNAME="bname";
public static String bAUTHOR="bauthor";
public static String bISBN="bisbn";
public static String bCOPY="bcopy";
public static String bINFO="binfo";
public static String bID="ID";
private ListView userList;
private AlertDialog.Builder build;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.display_activity);
userList = (ListView) findViewById(R.id.List);
mHelper = new DbHelper(this);
userList.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
Intent intent = new Intent(view.getContext(),BookDetails.class);
Cursor cursor = (Cursor) adapter.getItem(position);
intent.putExtra("bID", cursor.getInt(cursor.getColumnIndex("KEY_ID")));
startActivity(intent);
}
});}
@Override
protected void onResume() {
displayData();
super.onResume();
}
/**
* displays data from SQLite
*/
private void displayData() {
dataBase = mHelper.getWritableDatabase();
Cursor mCursor = dataBase.rawQuery("SELECT * FROM "
+ DbHelper.TABLE_NAME, null);
bookId.clear();
book_Name.clear();
book_Author.clear();
book_Isbn.clear();
book_Copy.clear();
book_Info.clear();
if (mCursor.moveToFirst()) {
do {
bookId.add(mCursor.getString(mCursor.getColumnIndex(DbHelper.KEY_ID)));
book_Name.add(mCursor.getString(mCursor.getColumnIndex(DbHelper.KEY_NAME)));
book_Author.add(mCursor.getString(mCursor.getColumnIndex(DbHelper.KEY_AUTHOR)));
book_Isbn.add(mCursor.getString(mCursor.getColumnIndex(DbHelper.KEY_ISBN)));
book_Copy.add(mCursor.getString(mCursor.getColumnIndex(DbHelper.KEY_COPIES)));
book_Info.add(mCursor.getString(mCursor.getColumnIndex(DbHelper.KEY_INFO)));
} while (mCursor.moveToNext());
}
DisplayAdapter disadpt = new DisplayAdapter(DisplayActivity.this,bookId, book_Name);
userList.setAdapter(disadpt);
mCursor.close();
}
}
这里是我,当我运行了logcat的,,,
11-25 03:02:52.878: D/dalvikvm(2734): GC_FOR_ALLOC freed 59K, 4% free 3150K/3272K, paused 40ms, total 44ms
11-25 03:02:52.978: I/Choreographer(2734): Skipped 46 frames! The application may be doing too much work on its main thread.
11-25 03:02:53.038: D/gralloc_goldfish(2734): Emulator without GPU emulation detected.
11-25 03:02:55.768: D/AndroidRuntime(2734): Shutting down VM
11-25 03:02:55.768: W/dalvikvm(2734): threadid=1: thread exiting with uncaught exception (group=0xb4a4bb90)
11-25 03:02:55.818: E/AndroidRuntime(2734): FATAL EXCEPTION: main
11-25 03:02:55.818: E/AndroidRuntime(2734): Process: com.example.test, PID: 2734
11-25 03:02:55.818: E/AndroidRuntime(2734): java.lang.NullPointerException
11-25 03:02:55.818: E/AndroidRuntime(2734): at com.example.test.DisplayActivity$1.onItemClick(DisplayActivity.java:58)
11-25 03:02:55.818: E/AndroidRuntime(2734): at android.widget.AdapterView.performItemClick(AdapterView.java:299)
11-25 03:02:55.818: E/AndroidRuntime(2734): at android.widget.AbsListView.performItemClick(AbsListView.java:1113)
11-25 03:02:55.818: E/AndroidRuntime(2734): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2904)
11-25 03:02:55.818: E/AndroidRuntime(2734): at android.widget.AbsListView$3.run(AbsListView.java:3638)
11-25 03:02:55.818: E/AndroidRuntime(2734): at android.os.Handler.handleCallback(Handler.java:733)
11-25 03:02:55.818: E/AndroidRuntime(2734): at android.os.Handler.dispatchMessage(Handler.java:95)
11-25 03:02:55.818: E/AndroidRuntime(2734): at android.os.Looper.loop(Looper.java:137)
11-25 03:02:55.818: E/AndroidRuntime(2734): at android.app.ActivityThread.main(ActivityThread.java:4998)
11-25 03:02:55.818: E/AndroidRuntime(2734): at java.lang.reflect.Method.invokeNative(Native Method)
11-25 03:02:55.818: E/AndroidRuntime(2734): at java.lang.reflect.Method.invoke(Method.java:515)
11-25 03:02:55.818: E/AndroidRuntime(2734): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
11-25 03:02:55.818: E/AndroidRuntime(2734): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
11-25 03:02:55.818: E/AndroidRuntime(2734): at dalvik.system.NativeStart.main(Native Method)
请定义'它没有work'? –
@劳伦斯乔伊应用程序将停止并退出,如果我点击列表上的项目 –
post logcat错误消息。 –