마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

db저장에 대해 문의드립니다.

0 추천

안녕하세요

sqliteopenhelper을 사용해서 db에 데이터저장 시킬려고하는데요

예제를 보면서 작업하면 테이블까지는 이해는 어느정도는 되는데

EditText, onClick를 사용하지않고 TextView와 onCreate를 사용해서 작업중데요 

// DB에 데이터 추가
        Button insert = (Button) findViewById(R.id.insert);
        insert.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String date = etDate.getText().toString();
                String item = etItem.getText().toString();
                int price = Integer.parseInt(etPrice.getText().toString());

                dbHelper.insert(date, item, price);
                result.setText(dbHelper.getResult());
            }
        });

여기서 onClick을 onCreate로 변경해서 진행시 

Button insert = (Button) findViewById(R.id.insert);
        insert.setOnClickListener(new View.OnClickListener() {

이부분을 어떻게 해야될지 몰라서 

이렇게 문의 드립니다.

초심자1 (790 포인트) 님이 2018년 5월 9일 질문
초심자1님이 2018년 5월 9일 수정

1개의 답변

0 추천
대강 구조가

onCreate() {

setContentView(layout);

//TODO

}

인데 TODO부분에 써놓으신 코드

String date = etDate.getText().toString();
String item = etItem.getText().toString();
int price = Integer.parseInt(etPrice.getText().toString());
 
dbHelper.insert(date, item, price);
result.setText(dbHelper.getResult());

를 하시면 되는겁니다.

onClickListener를 등록하지 않고 액티비티 실행하자마자 저장하시려면요.



onCreate() {

setContentView(layout);

String date = etDate.getText().toString();
String item = etItem.getText().toString();
int price = Integer.parseInt(etPrice.getText().toString());
 
dbHelper.insert(date, item, price);
result.setText(dbHelper.getResult());

}

 

이렇게 되는겁니다
익명사용자 님이 2018년 5월 9일 답변
onCreate() {
setContentView(layout);   
각각 괄호 부분 에서 빨간 줄이 나오는데  추가로 입력을 해야할것같은데
괄호 부분에 무엇을 넣어야되는 문의 드립니다.
public class MainActivity extends AppCompatActivity {
   
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);
   
    String date = etDate.getText().toString();
    String item = etItem.getText().toString();
    int price = Integer.parseInt(etPrice.getText().toString());
     
    dbHelper.insert(date, item, price);
    result.setText(dbHelper.getResult());
  }
}

빨간줄이 어느부분인지 모르겠습니다만 위와 같은 형태입니다
댓글에 적은 그대로 복붙하셨으면 문제가 생길수 밖에 없습니다
로그캣에 에러는 크게 없는데
ViewPostImeInputStage processPointer 0
ViewPostImeInputStage processPointer 1
떠서 저장이 된건지 안된건지 구별이 안되네요
...