2013-09-30 5 views
1

데이터베이스에서 활동으로 단일 행을 검색하여 표시하려고합니다. 값을 전달하기 위해 Getters와 Setters를 사용할 수 있는지 궁금합니다. 데이터를 쉽게 검색 할 수 있었지만 문제는 getters와 setter를 사용하여 값을 전달하는 데 문제가있는 것 같습니다. 여기 LogCat에서 내가 뭘 해왔 던가.Getter 및 Setter를 사용하여 SQLite에서 단일 데이터 표시

09-22 13:46:33.573: D/Enter Activity(3110): You have entered Score Activity 
09-22 13:46:34.177: D/Data Retreival(3110): Getting Data 
09-22 13:46:34.183: D/User(3110): 1 XyLoL 0 0 null null 
09-22 13:46:34.183: D/Database(3110): Database Close 
09-22 13:46:34.194: D/USER INFO(3110): 0 null 0 0 null null 
09-22 13:46:34.194: W/ResourceType(3110): No package identifier when getting value for resource number 0x00000000 
09-22 13:46:34.203: D/AndroidRuntime(3110): Shutting down VM 
09-22 13:46:34.203: W/dalvikvm(3110): threadid=1: thread exiting with uncaught exception (group=0x40014760) 
09-22 13:46:34.223: E/AndroidRuntime(3110): FATAL EXCEPTION: main 
09-22 13:46:34.223: E/AndroidRuntime(3110): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xylol.o_chabeta/com.xylol.o_chabeta.Enter_Score}: android.content.res.Resources$NotFoundException: String resource ID #0x0 
난 그냥 물어보고 싶은

경우

User_Score.java (활동)

public class Enter_Score extends Activity implements OnClickListener { 

    ScoreDataSource datasource; 
    UserHandler user; 

    //Textview Declaration 

    TextView username; 
    TextView score; 
    TextView questions_left; 
    TextView best_cat; 
    TextView worst_cat; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_enter__score); 

     username = (TextView) findViewById(R.id.stats_username); 
     score = (TextView) findViewById(R.id.stat_score); 
     questions_left = (TextView) findViewById(R.id.stat_questions_left); 
     best_cat = (TextView) findViewById(R.id.stats_best); 
     worst_cat = (TextView) findViewById(R.id.stats_worst); 

     datasource = new ScoreDataSource(this); 
     datasource.open(); 
     Log.d("Data Retreival", "Getting Data"); 
     datasource.getScore(); 
     datasource.close(); 


     UserHandler user = new UserHandler(); 

     long user_id = user.getUSER_ID(); 
     String user_n =user.getUSER_NAME(); 
     int user_s =user.getUSER_SCORE(); 
     int user_ql= user.getUSER_QUESTIONS_LEFT(); 
     String user_b = user.getUSER_BEST_CATEGORY() ; 
     String user_w = user.getUSER_WORST_CATEGORY(); 

     Log.d("USER INFO", user_id+ " " + user_n + " " + user_s + " " + user_ql + " " + user_b + " " + user_w); 

     username.setText(user_n); 
     score.setText(user_s); 
     questions_left.setText(user_ql); 
     best_cat.setText(user_b); 
     worst_cat.setText(user_w); 


     Button b = (Button) findViewById(R.id.back); 
     b.setOnClickListener(this); 


    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.enter__score, menu); 
     return true; 
    } 

    @Override 
    public void onClick(View v) { 

     if(v.getId() == R.id.back){ 
      Intent i = new Intent(Enter_Score.this, MainActivity.class); 
      startActivity(i); 
      finish(); 
     } 

    } 



} 

ScoreDataSource.java (데이터 Retrival)

public class ScoreDataSource extends Enter_Score{ 


    SQLiteOpenHelper dbhelper; 
    SQLiteDatabase database; 


    private static final String[] allColumns = { 
     O_chaDBOpenHelper.USER_ID, 
     O_chaDBOpenHelper.USER_NAME, 
     O_chaDBOpenHelper.USER_SCORE, 
     O_chaDBOpenHelper.USER_QUESTIONS_LEFT, 
     O_chaDBOpenHelper.USER_BEST_CATEGORY, 
     O_chaDBOpenHelper.USER_WORST_CATEGORY 
    }; 

    public ScoreDataSource(Context context){ 

     dbhelper = new O_chaDBOpenHelper(context); 
    } 

    public void open() { 
     database = dbhelper.getReadableDatabase(); 
    } 

    public void close() { 
     Log.d("Database", "Database Close"); 
     dbhelper.close(); 
    } 

    public void getScore() { 

     Cursor c = database.query(O_chaDBOpenHelper.USER_TABLE, allColumns, 
       null, null, null, null, null); 
       c.moveToFirst(); 

     int iid = c.getColumnIndex(O_chaDBOpenHelper.USER_ID); 
     int iusername = c.getColumnIndex(O_chaDBOpenHelper.USER_NAME); 
     int iscore = c.getColumnIndex(O_chaDBOpenHelper.USER_SCORE); 
     int iql = c.getColumnIndex(O_chaDBOpenHelper.USER_QUESTIONS_LEFT); 
     int ibc = c.getColumnIndex(O_chaDBOpenHelper.USER_BEST_CATEGORY); 
     int iwc = c.getColumnIndex(O_chaDBOpenHelper.USER_WORST_CATEGORY); 

     // Get and Set Valueszzz 

     long id = c.getLong(iid); 
     String username = c.getString(iusername); 
     int score = c.getInt(iscore); 
     int questions_left = c.getInt(iql); 
     String best_cat = c.getString(ibc); 
     String worst_cat = c.getString(iwc); 

     Log.d("User", id+ " " + username+ " " + score+ " " + questions_left + " " + best_cat + " " + worst_cat); 

     UserHandler user = new UserHandler(); 

     user.setUSER_ID(id); 
     user.setUSER_NAME(username); 
     user.setUSER_SCORE(score); 
     user.setUSER_QUESTIONS_LEFT(questions_left); 
     user.setUSER_BEST_CATEGORY(best_cat); 
     user.setUSER_WORST_CATEGORY(worst_cat); 


    } 

} 

UserHandler.java (게터 및 세터)

public class UserHandler { 

    private long USER_ID; 
    private String USER_NAME; 
    private int USER_SCORE; 
    private int USER_QUESTIONS_LEFT; 
    private String USER_BEST_CATEGORY; 
    private String USER_WORST_CATEGORY; 

    public UserHandler(){ 

    } 

    public UserHandler(int ID, String NAME, String GENDER, String COUNTRY, int SCORE, int QUESTION_LEFT, String BEST_CATEGORY, String WORST_CATEGORY){ 
     this.USER_ID = ID; 
     this.USER_NAME = NAME; 
     this.USER_SCORE = SCORE; 
     this.USER_QUESTIONS_LEFT = QUESTION_LEFT; 
     this.USER_BEST_CATEGORY = BEST_CATEGORY; 
     this.USER_WORST_CATEGORY = WORST_CATEGORY; 
    } 

    public long getUSER_ID() { 
     return USER_ID; 
    } 

    public void setUSER_ID(long uSER_ID) { 
     this.USER_ID = uSER_ID; 
    } 

    public String getUSER_NAME() { 
     return USER_NAME; 
    } 

    public void setUSER_NAME(String uSER_NAME) { 
     this.USER_NAME = uSER_NAME; 
    } 

    public int getUSER_SCORE() { 
     return USER_SCORE; 
    } 

    public void setUSER_SCORE(int uSER_SCORE) { 
     this.USER_SCORE = uSER_SCORE; 
    } 

    public int getUSER_QUESTIONS_LEFT() { 
     return USER_QUESTIONS_LEFT; 
    } 

    public void setUSER_QUESTIONS_LEFT(int uSER_QUESTIONS_LEFT) { 
     this.USER_QUESTIONS_LEFT = uSER_QUESTIONS_LEFT; 
    } 

    public String getUSER_BEST_CATEGORY() { 
     return USER_BEST_CATEGORY; 
    } 

    public void setUSER_BEST_CATEGORY(String uSER_BEST_CATEGORY) { 
     this.USER_BEST_CATEGORY = uSER_BEST_CATEGORY; 
    } 

    public String getUSER_WORST_CATEGORY() { 
     return USER_WORST_CATEGORY; 
    } 

    public void setUSER_WORST_CATEGORY(String uSER_WORST_CATEGORY) { 
     this.USER_WORST_CATEGORY = uSER_WORST_CATEGORY; 
    } 

} 

답변

0

User_Score.java 및 ScoreDataSource.java에서 만든 UserHandler의 객체가 다릅니다. 그러므로 당신은 올바른 가치를 얻지 못했습니다.

UserHandler 클래스 Singleton을 만들 수 있습니다.

+0

어떻게하면됩니까? –

+0

@ 존 : 싱글 톤에 대해 묻는다면, 그냥 구글로하면 많은 유용한 링크를 얻을 수 있습니다. –

+0

@ JohnMichaelJames : 귀하의 질문이 완전히 해결되면 통지 한 것으로 표시하겠습니다. –

관련 문제