2

조각을 포함하도록 레이아웃을 변환하려고합니다. 뷰 중 하나는 수신기가있는 ImageButton입니다. 코드는 ... 액티비티로 잘 작동하지만 조각으로 문제가 있습니다Android ImageButton이 Activity에서 잘 작동했습니다. 조각에서 작동하지 않습니다

첫 번째 문제였다 (나는 findViewById를, 를 사용하지 수 있지만 여기에 대한 답을 찾을 수 있었다과의 getView로 고정하는 것이).

내가 선언 후 나는 ... 두 번째 문제에 을 대한 답변을 찾을 수없는

:

ImageButton camBt = (ImageButton)getView().findViewById(R.id.button1); 

내가 클릭 리스너 상을 설정하려면 :

camBt.setOnClickListener(listener); 

그러나 연기 유지 ImageButton (camBt)이 존재하지 않습니다 ... 나는 문제가 무엇인지 알지 못합니다 ... 활동에서 정상적으로 작동했습니다 ...

다음은 전체입니다. 코드. 많은 감사!

public class CameraFragment extends Fragment { 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
    Bundle savedInstanceState) { 
    View V = inflater.inflate(R.layout.camera_fragment, container, false); 
    return V; 
} 

ImageButton camBt = (ImageButton)getView().findViewById(R.id.button1); 
camBt.setOnClickListener(listener); 

ImageButton.OnClickListener listener = new ImageButton.OnClickListener() 
{ 

@Override 
public void onClick(View arg0) 
{ 
Camera.open().getParameters(); 
} 
}; 
} 

답변

7

onCreateView() 내부

ImageButton camBt = (ImageButton)getView().findViewById(R.id.button1); 
camBt.setOnClickListener(listener); 

이동

.

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
    Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.camera_fragment, container, false); 

    // Here it is 
    ImageButton camBt = (ImageButton)v.findViewById(R.id.button1); 
    camBt.setOnClickListener(listener); 


    return v; 
} 

그리고 한 가지 더

처럼 당신이해야 변수 이름은 소문자로 시작하는 것을 이해할 필요가있다. 따라서 View V 대신 View v을 사용해야합니다.

+2

는 V와 함께 완료 –

+0

@kalyanpvs을의 getView()를 대체! 똑같은 일을했다. 수정 해 주셔서 감사합니다 :) –

+0

ok .. + 1 빠른 응답입니다. –

0

당신은 같은 onCreateView() 내부

ImageButton camBt = (ImageButton)getView().findViewById(R.id.button1); 
camBt.setOnClickListener(listener); 

을 추가해야합니다 :

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
Bundle savedInstanceState) { 
View V = inflater.inflate(R.layout.camera_fragment, container, false); 

ImageButton camBt = (ImageButton)v.findViewById(R.id.button1); 

camBt.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 

     } 
    }); 

return V; 
} 
0
 public class CameraFragment extends Fragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
       View V = inflater.inflate(R.layout.camera_fragment, container, false); 
     ImageButton camBt = (ImageButton)V.findViewById(R.id.button1); 


     ImageButton.OnClickListener listener = new ImageButton.OnClickListener() 
      { 

      @Override 
       public void onClick(View arg0) 
        { 
        Camera.open().getParameters(); 
        } 
       }; 
     camBt.setOnClickListener(listener); 
      return V; 
    } 


    } 
관련 문제