2013-07-05 2 views
0

프래그먼트 내에서 버튼 등을 조작해야하지만 findViewById 메소드가 인식되지 않습니다. 또한 메소드가 인식되지 않기 때문에 경고 대화 상자조차 설정할 수 없습니다.프래그먼트 안에서 아무 것도 접근 할 수 없습니다.

getActivity() 또는 getActivity(). getApplicationContext()를 추가하면 조각이 바인딩 된 활동에 적용됩니다.

개체를 만들어 조각 내에서 조작하는 올바른 방법은 무엇입니까?

+0

DatePickerDialog (getActivity(), – Gina

답변

0

public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.list_view_fragment, container, false); 
    listView = (ListView)v.findViewById(R.id.listView); 
    ImageButton imageBtn = (ImageButton)v.findViewById(R.id.imageButton); 
    imageBtn.setOnClickListener(new OnClickListener(){ 
     @Override 
     public void onClick(View arg0) { 
      Builder MyAlertDialog = new AlertDialog.Builder(getActivity()); 
       MyAlertDialog.setTitle("Title"); 
       MyAlertDialog.setMessage("Message"); 
       DialogInterface.OnClickListener deleteClick = new DialogInterface.OnClickListener() 
       { 
        public void onClick(DialogInterface dialog, int which) { 
         //your code 
        } 
       }; 
       MyAlertDialog.setPositiveButton("First",deleteClick); 
       MyAlertDialog.setNeutralButton("Second",new DialogInterface.OnClickListener() 
        { 
         public void onClick(DialogInterface dialog, int which){ 
          //second 
         } 

        }); 
       MyAlertDialog.setNegativeButton("Last",new DialogInterface.OnClickListener() 
        { 
         public void onClick(DialogInterface dialog, int which) { 
          return; 
         } 
        }); 
       MyAlertDialog.show(); 

     } 
     }); 
    return v; 
} 
+0

조각에으로 onPrepare Dialog() 메서드를 사용하는 방법? – erdemgc

0

를 들어 조각을 위해, 당신은 당신이

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View root = inflater.inflate(R.layout.your_fragment_layout, container, false); 
     progressBar = (ProgressBar)root.findViewById(R.id.progress_bar); 
} 
+0

mPickDate.setOnClickListener (새 View.OnClickListener() { \t \t \t 공공 무효 온 클릭 (보기 V) { ShowDialog를 (?: DATE_DIALOG_ID) } }); 예를 들어 이; ShowDialog를 인식하지 못 여기에 무엇을 – erdemgc

+0

는 대화 상자이 onCreateDialog (INT 아이디) { \t \t 스위치 (ID) { \t \t 경우 DATE_DIALOG_ID을 rotected\t \t \t 반환 새로운 DatePickerDialog ("여기에 추가하고 무엇", mDateSetListener, mYear, mMonth, \t \t \t \t \t MDAY); \t \t} \t \t return null; \t} 또한 '내가 추가 할 항목'입력란을 조각에 사용하려면 어떻게해야합니까? – erdemgc

1

원하는 findViewById 방법은 Activity 클래스에서 상속 방법을 onCreateView 무시하고보기를 팽창한다. 프래그먼트에서는 특정 View 객체에서이 메서드를 호출 할 수 있습니다. 대부분의 경우 당신은 부풀려진 견해에서 그것을 부를 것입니다. findViewById은 느린 작업입니다. 뷰에 대한 참조를 활동 구성원으로 유지하는 것은 항상 좋은 습관입니다. 가장 구체적인 View 개체에서이 메서드를 호출합니다. 더 큰 컨테이너에 배치 된 컨테이너에서 View를 가져 오려면 더 작은 컨테이너에서 메서드를 호출하면 더 빠릅니다. :)

관련 문제