Android设计实践-切换视图

Android设计实践-切换视图,android,android-listview,Android,Android Listview,我是android开发新手,实际上我是web开发人员。这个问题类似于html+css类 在我的应用程序中,我有一个简单的listView,带有自定义的行视图。对于行的不同状态,我需要切换行的许多子元素,如颜色、背景色、某些元素的可见性 当然,我可以在CustomArrayAdapter的代码中执行此操作。但这看起来像是肮脏的把戏 我怎样才能做到“漂亮”?android API是否与HTML中的类类似 public View getView(int position, View convertVi

我是android开发新手,实际上我是web开发人员。这个问题类似于html+css类

在我的应用程序中,我有一个简单的listView,带有自定义的行视图。对于行的不同状态,我需要切换行的许多子元素,如颜色、背景色、某些元素的可见性

当然,我可以在CustomArrayAdapter的代码中执行此操作。但这看起来像是肮脏的把戏

我怎样才能做到“漂亮”?android API是否与HTML中的类类似

public View getView(int position, View convertView, ViewGroup parent) {
    // ...
    Integer items_count = merc.getItemsCount(); String item_count_label = "";
    if(0 < items_count){
        item_count_label = String.valueOf( items_count );
    } else {
        item_count_label = "";
    }
    countTextView.setText( item_count_label );

    return rowView;
}
public View getView(int位置、视图转换视图、视图组父视图){
// ...
Integer items_count=merc.getItemsCount();字符串item_count_label=“”;
如果(0<项目数){
item\u count\u label=String.valueOf(items\u count);
}否则{
项目_计数_标签=”;
}
countTextView.setText(项目\计数\标签);
返回行视图;
}



通常,您会覆盖
getViewTypeCount()
并返回ListView可以拥有的不同行“类型”的数量(比如N个类型),并覆盖
getItemViewType()
以返回从0到(N-1)的值。然后在
getView()
中,您可以调用
getItemViewType(position)
并在返回值上切换
,以充气正确的行布局并执行您需要执行的操作


我建议你看这段视频:

你能显示你的代码吗?现在很简单。文件src/com/lumiro/merchantmonitor/view/MerchantArrayAdapter.java和res/layout/merchant_row.xml。但稍后我需要添加更多元素。请在问题中粘贴相关代码,而不仅仅是一个链接。
<TextView
    android:id="@+id/label"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Item label"
    android:focusable="false"
    android:textSize="18dp"
    android:textIsSelectable="true">
</TextView>
<TextView
    android:id="@+id/profit"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text=""
    android:textSize="12dp"
    android:textColor="#00aa00"
    android:layout_weight="1"
    android:layout_marginLeft="15px">
</TextView>
<TextView
    android:id="@+id/count"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="6"
    android:textSize="18dp" >
</TextView>