2015-10-19 37 views
0

我已經構建了一個View,它顯示由相應的Java Activity類驅動的數據。數據來自Collection的第一個elementAndroid我應該修改視圖元素還是重新加載活動?

在一個按鈕上點擊視圖(onClick),我想在視圖中顯示Collection的第二個元素(替換第一個element)。

什麼是實現這一目標的最佳途徑?這是我在想什麼:

  1. onClick調用Activity類中的一個方法,該方法修改了現有視圖元素的狀態?
  2. onClick重載活動和Collection的狀態還存在能呈現嗎?
  3. 還有其他的一些方法嗎?

不確定1是否可以工作,因爲模型未綁定到視圖元素?需要進行某種刷新。

如果您只是希望保持視圖結構相同但修改元素的狀態,那麼聲音就會過度消耗。

在此先感謝。

+0

只需再次將元素綁定到Collection,它將是最快的,因爲沒有初始化新視圖 – iago

+0

使用數組適配器istead。 http://developer.android.com/reference/android/widget/ArrayAdapter.html – dsharew

+0

謝謝你的建議Iago。我認爲這意味着嘗試選項1?我相信當我嘗試這樣做時,當嘗試第二次修改元素時,我得到了一個IllegalStateException(我認爲)。 – LKing

回答

0

使用ViewSwitcher

<ViewSwitcher 
    android:id="@+id/viewswitcher" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <View 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:onClick="firstClick" /> 


    <View 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_launcher" /> 
     android:onClick="secondClick" 

</ViewSwitcher> 

在Java代碼中

firstClick() 
{ 

    viewswitcher.setDisplayedChild(1); 
} 


secondClick() 
{ 

    //whatever you need 
} 

在這裏,當你在第一個視圖中單擊(它可以是一個按鈕),第二視圖可以通過更換變得可見第一。根據您的方便使用它。

+0

我不認爲這是可擴展的?如果我的收藏包含很多元素會怎樣?同樣如前所述,視圖的所有內容都是相同的,只是其中的數據將被修改。 – LKing

+0

這兩個視圖都可以是一個佈局本身。您可以在佈局中添加一組數據。它可以按照您的要求進行擴展。如果它不能滿足你的要求,對不起。使用另一種方法。 :) –

0

我一直在想這個。我所要做的只是更新java層中視圖對象的狀態,並且視圖會自動「繪製」更改。

相關問題