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

전체적으로 fragment 이용중입니다.

0 추천

fragment 내에 EditText를 클릭하면 dialog박스가 뜨고
dialog박스 내에 Radio버튼으로 text를 클릭하여 edittext에 저장하고 싶습니다.

근데 기본 액티비티에서 이루어지는게 아니라
fragment 내에서 이루어지는거라서 코딩하는데 애먹고있습니다 ㅠㅠ

일단 간단하게 작성을 해봤는데 이게 아닌 것 같네요..
참고자료나 링크를 주시면 참고하겠습니다 !

 

public class Fragment3 extends Fragment {
 
 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
   Bundle savedInstanceState) {
 View v = inflater.inflate(R.layout.fragment3, container, false);
  
 EditText edtLoc = (EditText)v.findViewById(R.id.edt_orderloc);
 EditText edtPart = (EditText)v.findViewById(R.id.edt_orderpart);
 EditText edtEach = (EditText)v.findViewById(R.id.edt_ordereach);
 EditText edtWeight = (EditText)v.findViewById(R.id.edt_orderweight);
 EditText edtMemo = (EditText)v.findViewById(R.id.edt_ordermemo);
 EditText edtTime = (EditText)v.findViewById(R.id.edt_ordertime);
 Button btnOrd = (Button)v.findViewById(R.id.btn_order);
 Button btnCan = (Button)v.findViewById(R.id.btn_ordercancel);
  
 return v;

 }
 public void onClick(View v) {
 switch(v.getId()){
 case R.id.edt_orderloc :
   
 final EditText edtLoc = (EditText)v.findViewById(R.id.edt_orderloc);
   Fragment3 mContext = Fragment3.this;
   AlertDialog.Builder builder;
   AlertDialog dialog;
 LayoutInflater inflater=(LayoutInflater)mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
 View layout=inflater.inflate(R.layout.fragment3, (ViewGroup)v.findViewById(R.id.customdialog));
   
 builder = new AlertDialog.Builder(mContext);
 builder.setView(layout);
                     dialog.setTitle("수령지역");
 dialog.setButton("취소", new DialogInterface.OnClickListener(){
    public void onClick(DialogInterface dialog, int which) {
    String data = edtLoc.getText().toString();
   }
                   }  
        }  
 
}

 

익명사용자 님이 2015년 4월 28일 질문

1개의 답변

0 추천
일단 설명을 하자면

1. 다어얼로그를 띄우는 주체에 대한 이벤트 리스너가 등록되어 있지 않기 때문에 btnOrd 와 같은 버튼에 click 리스너를 등록하여야 할 것 같네요.  setOnClickListener 로 하면 됩니다. 검색 해보시구요

2. 다이얼로그를 열때 취소에 event listener 를 걸기 보다는 "확인" 과 같은 버튼에 event listener 를 걸어야 할 것 같네요

3. 현재 onCreateView 에 local 변수로 되어 있는 부분을 클래스 멤버 변수로 만드세요, 방법은 변수 선언을 클래스 명 하단부로 옮기시면 됩니다.

 

fragment 가 문제가 아니고 현재 안드로이드에 기본 적인 부분이 많이 부족해 보입니다. 책을 한권 사시고 정독하시기를 추천드립니다.
aucd29 (218,390 포인트) 님이 2015년 4월 28일 답변
...