Android - 将我的UITableView移植到android

时间:2014-11-07 14:55:03

标签: android ios uitableview android-listview

我想将UITableView移植到我正在处理的Android应用程序中。 使用基本ListView在android中创建基本android.R.layout.simple_list_item_1没有问题。 但我在定制细胞方面遇到了麻烦。这是我的UITableView中的自定义单元格:

enter image description here

所以我的问题是: 如何在android中创建自定义列表项?它应该看起来像我的自定义UITableViewCell

是否可以使用界面构建器创建列表项?如何访问单元格的标签和视图?

另一个问题是: 我的UITableView中有多个原型单元格。但据我所知,我只能为整个列表设置一个ListAdapter布局样式。这有什么作用?

谢谢!

1 个答案:

答案 0 :(得分:1)

听起来你是在正确的轨道上,但如果你已经列出了xml布局,Activity(或片段)和适配器中你现有的内容,那就更好了。

打包的simple_list_item_x用于非常基本的用法 - 即。 "简单"。无论如何,我们将使用的视图是ImageView(iOS中的UIImageView),TextView(iOS中的UILabel)和View(iOS中的UIView)。

除了视图外,还有两种不同的布局,我们将使用LinearLayout和RelativeLayout。前者只是将对象放入水平或垂直列表,而后者允许您相对于容器或xml本身中列出的视图定位视图。

下面的XML是ListView项的布局。您可以通过调用findViewById(R.id.icon_image);在您的片段或活动中使用正确的ID替换id来通过他们的ID(android:id)访问这些项目。

<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ImageView
            android:id="@+id/icon_image"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:layout_width="44dp"
            android:layout_height="44dp"
            android:layout_marginRight="5dp"/>

        <LinearLayout
            android:id="@+id/text_wrapper"
            android:orientation="vertical"
            android:layout_centerVertical="true"
            android:layout_alignRight="@+id/icon_image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

            <TextView
                android:id="@+id/upper_text_view"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>

            <TextView
                android:id="@+id/lower_text_view"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
        </LinearLayout>

        <View
            android:id="@+id/color_view"
            android:layout_alignParentRight="true"
            android:layout_width="5dp"
            android:layout_height="match_parent" />

</RelativeLayout>

关于第二个问题;如果您使用的是Eclipse或Android Studio(推荐的),那么当您创建新布局或打开现有布局时,您可以通过xml(&#34; text&#34;)或设计师(&)查看它。 #34; Design&#34;)由视图底部的选项卡指定。

关于你的上一个问题。是的,每个列表只能有一个适配器,与iOS相同。如果你想拥有多种商品类型(iOS中的单元格),那么在&#39; getView(...)&#39;下的自定义适配器中您将决定使用哪个xml布局(膨胀)。

这是一个很大的话题,如果你不太了解android可能看起来有些困难。最后,它与iOS的概念相同,只是组织有点不同。关于ListViews和适配器(你想要自定义适配器部分),vogella有一个很好的教程/演练。 Vogella