2012-11-09 83 views
0

設置ImageView的時,這是班裏的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內部聲明。 Swiching

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

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

應該使的伎倆。但全部取決於哪裏R.id.IVEditor宣佈;

+0

我得到這個工作,這是很好的。我現在遇到的問題是,我有一個水平滾動查看我的佈局,有沒有辦法在屏幕上顯示? – jister13

0

你可以在這裏粘貼你的編輯器佈局文件內容。由於該editor.xml佈局文件必須具有一個ImageView,因爲它的元素的id爲android:id = "@+id/IVEditor"。 然後只有你會得到確切的ImageView對象。

0

據我所知,它看起來像你用SView的新實例替換你的R.id.editor佈局。我還沒有碰到Android一段時間,所以不知道SView是做什麼的。不過,我首先想到的是,它會用自定義視圖/佈局/ whater替換以前的setContentView(R.id.Editor),它不包含編號爲R.layout.IVEditor的佈局元素。

所以是的,你試圖添加一個圖像到你的當前佈局中不存在的東西。 (setContentView(v)被移除R.id.editor佈局和投入Sview()不包含R.layout.IVEditor