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

viewpager관련 질문입니다...

0 추천

viewpager를 이용해서 회원가입을 처리하고 싶어서 개발중인 개발 새내기입니다.. viewpager안의 fragment가  activity의 버튼에 의해서 다음 페이지로 넘어가게 만들었습니다. 

즉, 메인 액티비티의  "다음" 버튼을 누르면 초기의 아이디를 입력받을 프래그먼트에서 비밀번호를 입력받을 프래그먼트로 또 누르면 비밀번호에서 이름 순으로 총 3페이지로 구성되어 페이지 전환이 됩니다. (첫 페이지: 아이디, 다음 페이지: 비밀번호, 마지막 페이지: 이름)

근데 문제는 넘어가면서 이제 마지막 프래그먼트가 되면  메인 액티비티의  "가입" 버튼이 나오고 이 버튼을 누르면 이전 fragment에 있는  edittext의 값들을 가져와서 DB에 저장해야하는데, 제가 생각한 방법으로는

액티비티의 "다음" 버튼을 누를 때마다 프래그 먼트의 edittext값을 가져와서 메인 액티비티의 배열에 저장해 놓아야 할거 같은데, 이 과정에서는 계속 edittext에 접근하면 계속 nullpoint에러가 떠서 접근하는 방법을 모르겠습니다. 생성자 객체를 생성 접근도 해보았고 fragmentmanager를 이용해 id 접근도 해보았지만 계속 nullpoint에러가 뜹니다. fragment의 edittext에 접근해서 getText()를 할 방법이 있을까요?? ㅠㅠ 아니면 다른 좋은 방법이 있으면 알려주시면 감사하겠습니다...

주녕녕 (290 포인트) 님이 2020년 1월 30일 질문

1개의 답변

+1 추천
 
채택된 답변
fragment 안에서 editText 값을 return 해주는 class 를 만들고 액티비티에서 버튼을 클릭시 해당하는 클래스를 호출하여 값을 전달 받으면 될거같다고 생각되네요
zkzkzhzj (1,670 포인트) 님이 2020년 1월 30일 답변
주녕녕님이 2020년 1월 30일 채택됨
이런식으로 쓰시면 될 것 같네요

fragment (EditText 도 static 선언)
->
    public static String getText(){
        return String.valueOf(editText.getText());
    }

activity
->
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.d("gg", MainFragment.getText());
            }
        });
오오..... 감사합니다ㅠㅠ static을 넣어주니까 접근이 되는군요!! 많이 배웠습니다 정말 감사합니다.
모르고 익명으로 감사의 댓글을 달았네요... fragment 이거 때문에 몇 시간 동안 고민했는데, 다시 한번 도움주셔서 감사합니다. ^^
...