我有个问题。我用JSON文件中的数据填充了卡片视图的字段,并将它们显示在回收视图中。现在,我想要的是使用两种不同类型的卡片视图来显示数据。
JSON 示例
{
{
"id":"3",
"title":"Title1",
"place":"Stade omnisport de lomu00e9",
"imageUrl":"./uploads/thumbs/20150907133004.jpg",
"Description":"Lorem ipsum dolor erit ex, quis mollis massa sollicitudin eu. Mauris congue auctor placerat",
"codeCity":"1"
},
{
"id":"15",
"title":"Title2",
"place":"centre culturelle arena",
"imageUrl":"./uploads/thumbs/C3.PNG",
"Description":"Lorem ultrices dapibus. Praesent feugiat hendrerit ex, quis mollis massa sollicitudin eu. Mauris congue auctor placerat",
"codeCity":"1"
}
{
"id":"85",
"title":"Title3",
"place":"centrena",
"imageUrl":"./uploads/thumbs/A4.PNG",
"Description":"Lorem ultrices dapibus. Praesent feugiat hendrerit ex, quis mollis massa sollicitudin eu. Mauris congue auctor placerat",
"codeCity":"2"
}
}
我想根据城市代码使用不同的视图。例如,对于代码城市"1",我使用视图1,而对于代码城市2,我则使用视图2。在我的代码的哪一部分,我必须做到这一点,以及如何做到?
请参阅此链接:https://guides.codepath.com/android/Heterogenous-Layouts-inside-RecyclerView.这是你可以通过基本的谷歌搜索找到的东西。建议下次,在创建新问题之前彻底搜索
@Override
public int getItemViewType( int position )
{
String elementName = items.get( position );
switch(elementName)
{
case "1": TYPE_ONE; break;
case "2": TYPE_TWO; break;
default 0; break;
}
}
@Override
public ViewHolder onCreateViewHolder( ViewGroup viewGroup, int viewType )
{
LayoutInflater mInflater = LayoutInflater.from( viewGroup.getContext( ) );
ViewHolder viewGroupList;
switch(viewType)
{
case "1": View view1 = mInflater.inflate( R.layout.view1, viewGroup, false );
viewGroupList = new ViewHolder1( view1 );
break;
case "2": View view2 = mInflater.inflate( R.layout.view2, viewGroup, false );
viewGroupList = new ViewHolder2( view2 );
break;
}
return viewGroupList;
}