2014-02-23 120 views
1

我有一個listview在圖像視圖(排序列表視圖的背景)的活動。當活動適配器的數組列表爲空時,我想設置imageview可見,並且當我的數組列表中有一個或多個對象時,我想將imageview設置爲不可見。設置ImageView可見/不可見從活動的適配器

每當我改變ArrayList中,我從適配器調用此:

((MainActivity)context).checkForLogo(); 

和MainActivity的checkForLogo方法:

public void checkForLogo() 
{ 
    ImageView logoView = (ImageView)findViewById(R.id.imageViewLogo); 
    if (adapter.getCount() == 0) 
     logoView.setVisibility(View.VISIBLE); 

    else 
     logoView.setVisibility(View.INVISIBLE); 
} 

我得到NullPointerException異常。當我直接從活動設置可見性時,它就可以工作(來自onCreate的示例)。但是這對我的問題不起作用,因爲我需要在每次修改適配器的數組列表時修改它。

+1

適配器或logoView可以爲空。嘗試調試它。你會找到解決方案。 – Devrim

+0

聲明它靜態(圖像視圖),並從這樣的適配器訪問 - MainActivity.logoView.setVisibility(View.VISIBLE);作爲Zhenxiao Hao的建議。 –

+0

我不認爲這是一個好的解決方案。 – Devrim

回答

1

嘗試來聲明logoView全球和初始化它裏面onCreate

+0

完美工作。抱歉,由於名譽低下,我無法贊成。 –

+0

謝謝,我會更多地考慮這一點,因爲我仍然不明白爲什麼它不能以舊的方式工作。 –

相關問題