잘 작동하는 다른 활동의 목록에서 항목을 클릭하면 책 데이터베이스의 세부 정보를 표시하는 데이 코드가 있습니다. 이 코드를 사용했습니다. 이렇게 ... 하지만 작동하지 않았다! 누군가 내 코드에 어떤 문제가 있는지 말해 줄 수 있습니까 ??? 내가 항목을 클릭하면 세부 활동으로 이동하고 선택한 책의 나머지 세부 정보를 표시합니다. ,,, 여기 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();
}
}
입니다! 당신을 감사합니다! :(도움이 내가 그것을 실행할 때받은 로그 캣은 제발
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'하지 않았다? –
@Lawrence Choy 내가 목록에있는 항목을 클릭하면 응용 프로그램이 멈추고 종료됩니다. –
게시 로그 오류 메시지 .. –