2012-04-08 2 views
0

의 방법을 실행할 수 없습니다 : 활동의 방법을 실행할 수 없습니다.는 M이 예외 java.lang.IllegalStateException를 받고 : java.lang.IllegalStateException 활동

Android가 처음입니다. 데이터베이스에서 저장된 데이터를 표시하려고합니다.
오류가 발생하는 Compview 클래스입니다.

@Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.compview); 


     DB = (new DBHelper(this)).getWritableDatabase(); 
     // searchText = (EditText) findViewById (R.id.searchText); 

     eun = (TextView)findViewById(R.id.textV); 
    Bundle bundle = getIntent().getExtras(); 

    String UName = bundle.getString("UserName"); 

    eun.setText(UName); 



    } 

    public void search(View view) 
    {DB.isReadOnly(); 
    cursor = DB.rawQuery("SELECT _id, Cname, Cpost, Ccriteria, Cemail,Ccontact,Ccutoff FROM Comp WHERE Cusername LIKE ?", 
    new String[] {"%" + eun.getText().toString() + "%"}); 
    adapter = new SimpleCursorAdapter(
    this, 
    R.layout.cmpinfo, 
    cursor, 
    new String[] {" Cname", "Cpost", "Ccriteria", "Cemail","Ccontact","Ccutoff"}, 
    new int[] {R.id.cname, R.id.cpost, R.id.ccriteria , R.id.cemail, R.id.ccontact, R.id.ccutoff}); 


    setListAdapter(adapter); 
    } 

    @Override 
    public void onBackPressed() 
    { 
    super.onBackPressed(); 
    Intent i = new Intent(CompView.this, LoginActivity.class); 
    startActivity(i); 
    } 
    } 

로그 캣

04-09 01:32:54.322: W/dalvikvm(4302): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
04-09 01:32:54.342: E/AndroidRuntime(4302): FATAL EXCEPTION: main 
04-09 01:32:54.342: E/AndroidRuntime(4302): java.lang.IllegalStateException: Could not execute method of the activity 
04-09 01:32:54.342: E/AndroidRuntime(4302):  at android.view.View$1.onClick(View.java:2072) 
04-09 01:32:54.342: E/AndroidRuntime(4302):  at android.view.View.performClick(View.java:2408) 
04-09 01:32:54.342: E/AndroidRuntime(4302):  at android.view.View$PerformClick.run(View.java:8816) 
04-09 01:32:54.342: E/AndroidRuntime(4302):  at android.os.Handler.handleCallback(Handler.java:587) 
04-09 01:32:54.342: E/AndroidRuntime(4302):  at android.os.Handler.dispatchMessage(Handler.java:92) 
04-09 01:32:54.342: E/AndroidRuntime(4302):  at android.os.Looper.loop(Looper.java:123) 
04-09 01:32:54.342: E/AndroidRuntime(4302):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
04-09 01:32:54.342: E/AndroidRuntime(4302):  at java.lang.reflect.Method.invokeNative(Native Method) 
04-09 01:32:54.342: E/AndroidRuntime(4302):  at java.lang.reflect.Method.invoke(Method.java:521) 
04-09 01:32:54.342: E/AndroidRuntime(4302):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
04-09 01:32:54.342: E/AndroidRuntime(4302):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
04-09 01:32:54.342: E/AndroidRuntime(4302):  at dalvik.system.NativeStart.main(Native Method) 
04-09 01:32:54.342: E/AndroidRuntime(4302): Caused by: java.lang.reflect.InvocationTargetException 
04-09 01:32:54.342: E/AndroidRuntime(4302):  at com.google.data.CompView.search(CompView.java:68) 
04-09 01:32:54.342: E/AndroidRuntime(4302):  at java.lang.reflect.Method.invokeNative(Native Method) 
04-09 01:32:54.342: E/AndroidRuntime(4302):  at java.lang.reflect.Method.invoke(Method.java:521) 
04-09 01:32:54.342: E/AndroidRuntime(4302):  at android.view.View$1.onClick(View.java:2067) 
04-09 01:32:54.342: E/AndroidRuntime(4302):  ... 11 more 
04-09 01:32:54.342: E/AndroidRuntime(4302): Caused by: java.lang.IllegalArgumentException: column ' Cname' does not exist 
04-09 01:32:54.342: E/AndroidRuntime(4302):  at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:314) 
04-09 01:32:54.342: E/AndroidRuntime(4302):  at android.widget.SimpleCursorAdapter.findColumns(SimpleCursorAdapter.java:312) 
04-09 01:32:54.342: E/AndroidRuntime(4302):  at android.widget.SimpleCursorAdapter.<init>(SimpleCursorAdapter.java:87) 
04-09 01:32:54.342: E/AndroidRuntime(4302):  ... 15 more 

DBHelper 클래스

public class DBHelper extends SQLiteOpenHelper 


{ 
private SQLiteDatabase db; 
public static final String KEY_ROWID = "_id"; 
public static final String KEY_ROWID1 = "_id"; 
    public static final String KEY_FNAME = "firstname"; 
    public static final String KEY_LNAME = "lastname"; 
    public static final String KEY_GENDER = "gender"; 
    public static final String KEY_USER = "username"; 
    public static final String KEY_EMAIL = "email"; 
    public static final String KEY_CNAME="Cname"; 
    public static final String KEY_CPOST="Cpost"; 
    public static final String KEY_CCRITERIA="Ccriteria"; 
    public static final String KEY_CUSER="Cusername"; 
    public static final String KEY_CEMAIL="Cemail"; 
    public static final String KEY_CCONTACT="Ccontact"; 
    public static final String KEY_CCUTOFF="Ccutoff"; 


DBHelper DB = null; 
private static final String DATABASE_NAME = "Sam1.db"; 
private static final int DATABASE_VERSION = 2; 
    public static final String DATABASE_TABLE_NAME = "JobSeeker"; 
    public static final String Company_Table = "Comp"; 
    private static final String DATABASE_TABLE_CREATE = 
      "CREATE TABLE " + DATABASE_TABLE_NAME + "(" + 
      "_id INTEGER PRIMARY KEY AUTOINCREMENT,"+ 
      "firstname TEXT NOT NULL, lastname TEXT NOT NULL, gender TEXT NOT NULL, username TEXT NOT NULL, password TEXT NOT NULL, email TEXT NOT NULL);"; 
private static final String DATABASE_TABLE_CREATE2= 
" create table " + Company_Table + 
" (_id integer primary key autoincrement," + 
" Cname TEXT NOT NULL, Cpost TEXT NOT NULL,Ccriteria TEXT NOT NULL,Cusername TEXT NOT NULL, Cpassword TEXT NOT NULL, Cemail TEXT NOT NULL,Ccontact TEXT NOT NULL,Ccutoff TEXT NOT NULL);" ; 


    public DBHelper(Context context) { 

    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    System.out.println("In constructor"); 
} 




@Override 
public void onCreate(SQLiteDatabase db) { 

try{ 

    db.execSQL(DATABASE_TABLE_CREATE); 
    db.execSQL(DATABASE_TABLE_CREATE2); 



}catch(Exception e){ 
    e.printStackTrace(); 
} 
} 






@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
// TODO Auto-generated method stub 

} 




public Cursor rawQuery(String string, String[] strings) { 
// TODO Auto-generated method stub 
return null; 
} 




public void open() { 

getWritableDatabase(); 
} 


public Cursor getDetails(String text) throws SQLException 
{ 

    Cursor mCursor = 
      db.query(true, DATABASE_TABLE_NAME, 
       new String[]{KEY_ROWID, KEY_FNAME, KEY_LNAME, KEY_GENDER, KEY_USER, KEY_EMAIL}, 
       KEY_USER + "=" + text, 
       null, null, null, null, null); 
    if (mCursor != null) 
    { 
     mCursor.moveToFirst(); 
    } 
    return mCursor; 


} 

public Cursor getCompDetails(String text) throws SQLException 
{ 

    Cursor mCursor = 
      db.query(true, Company_Table, 
       new String[]{KEY_ROWID1, KEY_CNAME, KEY_CPOST, KEY_CCRITERIA, KEY_CUSER, KEY_EMAIL,KEY_CCONTACT,KEY_CCUTOFF}, 
       KEY_CUSER + "=" + text, 
       null, null, null, null, null); 
    if (mCursor != null) 
    { 
     mCursor.moveToFirst(); 
    } 
    return mCursor; 


} 


} 

벌금과 데이터베이스의 모든 데이터를 검색 할 수 노력하고 있지만, 때 내 compview 위해 같은 방법을 사용하고이 내 welcome1 클래스 클래스가 작동하지 않는 데이터에 액세스합니다. !! 당신이 String[] 배열을 만들 곳에서 adapter

adapter = new SimpleCursorAdapter(
    this, 
    R.layout.cmpinfo, 
    cursor, 
    new String[] {" Cname", "Cpost", "Ccriteria", "Cemail","Ccontact","Ccutoff"}, 
    new int[] {R.id.cname, R.id.cpost, R.id.ccriteria , R.id.cemail, R.id.ccontact, R.id.ccutoff}); 

봐 ...

new String[] {" Cname", "Cpost", "Ccriteria", "Cemail","Ccontact","Ccutoff"} 

를 만들 때

public class Welcome1 extends ListActivity 
{ 


protected TextView eun; 
protected SQLiteDatabase DB; 
protected Cursor cursor; 
protected ListAdapter adapter; 
protected TextView mUname; 
protected TextView mFname; 
protected TextView mLname; 
protected TextView mEmail; 


    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.welcome1); 


     DB = (new DBHelper(this)).getWritableDatabase(); 
     // searchText = (EditText) findViewById (R.id.searchText); 

     eun = (TextView)findViewById(R.id.textV); 
    Bundle bundle = getIntent().getExtras(); 

    String UName = bundle.getString("UserName"); 

    eun.setText(UName); 



    } 

    public void search(View view) 
    { 
    cursor = DB.rawQuery("SELECT _id, firstname, lastname, gender, username, email FROM JobSeeker WHERE username LIKE ?", 
    new String[] {"%" + eun.getText().toString() + "%"}); 
    adapter = new SimpleCursorAdapter(
    this, 
    R.layout.dtl, 
    cursor, 
    new String[] {"firstname", "lastname", "gender","username", "email"}, 
    new int[] {R.id.sfname, R.id.slname, R.id.sgender , R.id.suname, R.id.semail}); 


    setListAdapter(adapter); 
    } 

    @Override 
    public void onBackPressed() 
    { 
    super.onBackPressed(); 
    Intent i = new Intent(Welcome1.this, LoginActivity.class); 
    startActivity(i); 
    } 
    } 

답변

1

문제는 from 매개 변수입니다 ... 당신은 space 전에이 Cname.

logact 출력이 도시 ... 잘 작동 내 welcome1 그 클래스에 대한 방법과 동일한 방법을 사용하여

column ' Cname' does not exist 
+0

미터. !! – sambot

+0

@ user1320749 : 죄송합니다. 코드와 logcat을 잘못 읽었습니다. 내 편집 된 답변을 참조하십시오. – Squonk

+0

Thanxs .. :) ... 바보 같은 실수를 하는군. 그걸로 나를 죽이는거야. :) :) – sambot

관련 문제