2011-07-04 65 views
1

我有以下代碼:的Android setImageResource NullPointerException異常

public class PainLogger extends Activity implements OnClickListener, OnItemClickListener{ 
    ImageView image; 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     image = (ImageView)findViewById(R.id.imageView1); 
     image.setImageResource(R.drawable.acetaminophen); //**Null Pointer Here** 
     .... 
    } 
} 

這裏是在items.xml文件中的圖像。 (我認爲這是爲什麼它是空的 - 而不是在main.xml文件中,imageView在我的items.xml文件中,雖然它在R.id和R.drawable中顯示)

<ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" 
    android:src="@drawable/icon" android:id="@+id/imageView1"></ImageView> 

回答

2

確實會得到NullPointerException,因爲該小部件在您的main.xml文件中不存在。 R. *列出了應用程序中的每一個資源,所以這就是爲什麼你在其中看到R.id.imageView1的原因。

您應該在main.xml中複製items.xml文件的內容,或者使用include />包含items.xml或main.xml,或者更改代碼邏輯。

如果您嘗試訪問列表中的項目,你應該使用main.xml中一個ListView,並使用適配器。你會發現這個口碑不錯的教程:http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/

+0

感謝,但我不知道如何將我的main.xml文件中的圖像視圖。做我只是說「<包括ImageView的機器人:layout_height =‘包裝...............> />’ – Kgrover

+0

你可以只複製/在粘貼布局 – Gregory

+0

哦確定? ,但這是我的目標是在我的應用程序中執行操作:我在主佈局中有一個列表,當單擊時,我想要顯示此佈局,「item.xml」,它應該有一個imageview在其中...所以我將如何從我的PainLogger.java文件中執行此操作? – Kgrover

相關問題