2015-10-19 57 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层中视图对象的状态,并且视图会自动“绘制”更改。

相关问题