2016-06-25 100 views
1

我已经在我的MainActivity创建一个列表视图的自定义ListView和另一个布局文件:实现该行布局,看起来像这样在Android的

my row_layout

的问题是,我该如何实现呢?我在哪里设置所有必须进入文字的字符串?哪里去注意

我在互联网上看过,但我可以找到一个与我的类似listView的人。

我知道对于字符串我可以使用数组,但我可以设置一个ImageViews数组吗?

我会很感激,如果你能提供给我的,你给我解释一下如何“把东西放在”我的ListView里面详细的解答

编辑:添加row.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" android:layout_height="wrap_content"> 

    <TextView 
     android:id="@+id/text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="text" 
     android:textAllCaps="true" 
     android:textSize="36sp" 
     android:layout_marginTop="10dp" 
     android:fontFamily="sans-serif-condensed" 
     android:textStyle="bold" 
     android:textColor="@color/black" /> 

    <TextView 
     android:id="@+id/note" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/text" 
     android:text="note note note" 
     android:layout_marginTop="2dp" 
     android:fontFamily="sans_serif_medium" 
     android:textSize="24sp"/> 

    <ImageView 
     android:layout_width="200dp" 
     android:layout_height="140dp" 
     android:scaleType="fitCenter" 
     android:layout_alignParentEnd="true"/> 

</RelativeLayout> 
+0

你有没有使用过的ListView或GridView的getview? –

+0

@janki不,这是我第一次使用listView – Daniele

+0

阅读本文[教程](http://www.vogella.com/tutorials/AndroidListView/article.html) – user3502626

回答

3

您应该创建

  1. 一个类,(让我们把它命名为DataModel.java,你可以给出你想要的任何名字)代表你的数据:String text, note, image url;以及getter和setter方法。
  2. 类延伸ArrayAdapter。覆盖getView()方法。将ArrayList<DataModel>传递给创建的自定义阵列适配器。创建一个构造函数和调用super调用ArrayAdapter的“构造:ArrayAdapter(Context context, int resource, List<T> objects)

在getView方法膨胀行布局,并设置数据[与getView方法的位置参数匹配来自ArrayList中的索引]

在你的问题的情况下,我建议你学习更多关于view holder patternRecyclerView,这将有助于你了解的东西是如何工作的,以及他们如何应该高效地完成。

+0

@Daniele , 不用客气。 –

0

你想要做的是创建一个自定义类并让它扩展ArrayAdapter或BaseAdapter。在它的构造函数中,您可以将它传递给文本和图像的String数组。在getView方法,虚增您的自定义行:

LayoutInflater layoutInflater = LayoutInflater.from(context); 
    View yourView = layoutInflater.inflate(R.layout.added_row, parent, false); 

然后,您可以使用阵列设置行的值,你传递给设定值:

TextView text = (TextView) yourView.findViewById(R.id.text); 
text.setText(text[position]); 
0

使用自定义适配器的方式来加载数据自定义列表视图