2012-07-11 4 views
1

조각 클래스에서 ImageView의 setOnClickListener를 추가 할 때 문제가 발생합니다. 오류는 NullPointerException으로 인해 ImageView를 클릭 할 때 발생합니다.조각 클래스의 SetOnClickListener

다음은 내 코드입니다 :

public final class TestFragment extends Fragment { 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    ImageView image = new ImageView(getActivity()); 
    image.setTag(mContent); 
    image.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     HomeActivity h = new HomeActivity(); 
     String url = h.getEventUrl(); 

     Intent childClass = new Intent(getActivity(), HomeEventDetailActivity.class); 

     childClass.putExtra("eventUrl",url); 
     TabGroupActivity parentActivity = (TabGroupActivity)h.getParent(); 
     parentActivity.startChildActivity("Child_Main1", childClass); 
    } 
}); 
    imageManager.displayImage(mContent, image, R.drawable.icon); 
    image.setScaleType(ScaleType.FIT_XY); 

    LinearLayout layout = new LinearLayout(getActivity()); 
    layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
    layout.setGravity(Gravity.CENTER); 
    layout.addView(image); 

    return layout; 
} 

@Override 
public void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    outState.putString(KEY_CONTENT, mContent); 

    setUserVisibleHint(true); 
} 
} 

이 도와주세요 !!!!

답변

1

나는 문제가이 라인에서 발생하는 생각이 생성자 (getActivity()를 통해) 매개 변수로 조각 호스트 활동을 전달하는 대신

ImageView image = new ImageView(getActivity()); 

의에서 반환되는 레이아웃 변수를 전달 시도 onCreateView 메소드의 끝.

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

LinearLayout layout = new LinearLayout(getActivity()); 
layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
layout.setGravity(Gravity.CENTER); 

ImageView image = new ImageView(layout); 
image.setTag(mContent); 
image.setOnClickListener(new View.OnClickListener() { 
public void onClick(View v) { 
    HomeActivity h = new HomeActivity(); 
    String url = h.getEventUrl(); 

    Intent childClass = new Intent(getActivity(), HomeEventDetailActivity.class); 

    childClass.putExtra("eventUrl",url); 
    TabGroupActivity parentActivity = (TabGroupActivity)h.getParent(); 
    parentActivity.startChildActivity("Child_Main1", childClass); 
} 
}); 
imageManager.displayImage(mContent, image, R.drawable.icon); 
image.setScaleType(ScaleType.FIT_XY); 
layout.addView(image); 
return layout; 

}

:

ImageView image = new ImageView(layout); 

코드는 다음과 같을 것

관련 문제