2012-11-09 2 views
0

와 이미지 뷰를 설정할 때 내 클래스에서에서 onCreate (...) 방법 :널 포인터 예외 비트 맵

protected void onCreate(Bundle savedInstanceState) 
     { 
      super.onCreate(savedInstanceState); 
      requestWindowFeature(Window.FEATURE_NO_TITLE); 
      getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
      setContentView(R.layout.editor); 
      setRequestedOrientation(1); 

      v = new SView(this); 
      v.setOnTouchListener(this); 
      //v.setZOrderOnTop(true); 
      //v.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); 
      setContentView(v); 

      ImageView back = (ImageView) findViewById(R.id.IVEditor); 
      bm = loadPhoto("photo", bm); 
      if(bm != null) 
      { 
        //This Section is giving me the error 

       back.setImageBitmap(bm); 

      } 
     } 

이 오류가 내가 그것을 두 번 클릭 할 때 위의 구분 부분에 저를 제공합니다 . 나는 왜 그러나 모르겠어요

11-09 07:42:42.624: E/AndroidRuntime(32472): Caused by: java.lang.NullPointerException 
11-09 07:42:42.624: E/AndroidRuntime(32472): at com.synlight_development.tattoo_it.Editor.onCreate(Editor.java:64) 
11-09 07:42:42.624: E/AndroidRuntime(32472): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1072) 
11-09 07:42:42.624: E/AndroidRuntime(32472): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1785) 
11-09 07:42:42.624: E/AndroidRuntime(32472): ... 11 more 

답변

0
ImageView back = (ImageView) findViewById(R.id.IVEditor); 

R.id.IVEditor 당신이 setContentView 설정 레이아웃 내에 선언되어야한다.

R.id.IVEditorR.layout.editor으로 표시됩니다.

v = new SView(this); 
    v.setOnTouchListener(this); 
    //v.setZOrderOnTop(true); 
//v.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); 
    setContentView(v); 

ImageView back = (ImageView) findViewById(R.id.IVEditor); 
bm = loadPhoto("photo", bm); 
if(bm != null) { 
    back.setImageBitmap(bm); 
} 

을 Swiching은 트릭을해야한다. 그러나 모두는 R.id.IVEditor이 어디에 선언되는지에 달려 있습니다.

+0

나는이 작업을 훌륭하게 수행했습니다. 지금 내가 가지고있는 문제는 가로 스크롤보기가 내 레이아웃, 거기에 지금 화면에 표시하는 방법이 있습니까? – jister13

0

편집기 레이아웃 파일 내용을 여기에 붙여 넣을 수 있습니까? 그 editor.xml 레이아웃 파일은 id가 android:id = "@+id/IVEditor"으로 정의 된 요소 인 ImageView가 있어야합니다. 그러면 정확한 ImageView 객체 만 얻을 수 있습니다.

0

R.id.editor 레이아웃을 SView의 새 인스턴스로 바꾸는 것으로 이해합니다. 나는 잠시 동안 안드로이드에 손을 대지 않았으므로 무엇이 SView인지 확실하지 않습니다. 그러나 나는 그것이 이전 setContentView(R.id.Editor)을 id이라는 레이아웃 요소를 포함하지 않는 사용자 정의보기/레이아웃/채움자로 대체한다고 생각함으로써 시작할 것입니다.

그래, 현재 레이아웃에없는 이미지에 이미지를 추가하려고합니다. (setContentView(v)R.id.editor 레이아웃을 제거하고 R.layout.IVEditor을 포함하지 않는 Sview()에 넣습니다.