ANDROID 适配器从其字符串名称扩展动态布局
ANDROID Adaptor inflating dynamic layout from its string name
我有堆叠卡片视图。所以每张卡片都是设定任务。为此,每张卡片可能有不同的 layouts.I 想知道如何膨胀不同的布局。
为此,我创建了字符串数组来保存我所有的布局名称。
private ArrayList<String> LayOutData;
for (int x = 0; x < 4; x++) {
LayOutData.add("card_"+(x + 1));
}
这个LayOutData
我像
一样传递给我的适配器
mAdapter = new SwipeStackAdapter(mData,LayOutData);
我的布局名称是这样的
card_1.xml
card_2.xml
card_3.xml
card_4.xml
这是设置视图布局的静态方法。
convertView = getLayoutInflater().inflate(R.layout.card_1, parent, false);
但是我怎样才能用卡片索引膨胀我已经创建的名字。
我对此的尝试如下。
switch (position){
case 0:
convertView = getLayoutInflater().inflate(R.layout.card_1, parent, false);
break;
case 1:
convertView = getLayoutInflater().inflate(R.layout.card_2, parent, false);
break;
case 2:
convertView = getLayoutInflater().inflate(R.layout.card_3, parent, false);
break;
case 3:
convertView = getLayoutInflater().inflate(R.layout.card_3, parent, false);
break;
default:
convertView = getLayoutInflater().inflate(R.layout.card_1, parent, false);
break;
}
我知道这不是很好的编码方式,请问您对此提出了一些建议吗?
int id = getContext().getResources().getIdentifier(cardName, "layout", packageName);
getLayoutInflater().inflate(id, parent, false);
我有堆叠卡片视图。所以每张卡片都是设定任务。为此,每张卡片可能有不同的 layouts.I 想知道如何膨胀不同的布局。
为此,我创建了字符串数组来保存我所有的布局名称。
private ArrayList<String> LayOutData;
for (int x = 0; x < 4; x++) {
LayOutData.add("card_"+(x + 1));
}
这个LayOutData
我像
mAdapter = new SwipeStackAdapter(mData,LayOutData);
我的布局名称是这样的
card_1.xml
card_2.xml
card_3.xml
card_4.xml
这是设置视图布局的静态方法。
convertView = getLayoutInflater().inflate(R.layout.card_1, parent, false);
但是我怎样才能用卡片索引膨胀我已经创建的名字。 我对此的尝试如下。
switch (position){
case 0:
convertView = getLayoutInflater().inflate(R.layout.card_1, parent, false);
break;
case 1:
convertView = getLayoutInflater().inflate(R.layout.card_2, parent, false);
break;
case 2:
convertView = getLayoutInflater().inflate(R.layout.card_3, parent, false);
break;
case 3:
convertView = getLayoutInflater().inflate(R.layout.card_3, parent, false);
break;
default:
convertView = getLayoutInflater().inflate(R.layout.card_1, parent, false);
break;
}
我知道这不是很好的编码方式,请问您对此提出了一些建议吗?
int id = getContext().getResources().getIdentifier(cardName, "layout", packageName);
getLayoutInflater().inflate(id, parent, false);