Как видно из названия, я пытаюсь добавить дополнительную пользовательскую строку в свой список, чтобы разрешить большую настройку. В настоящее время у меня есть одна настраиваемая строка, установленная в виде списка, которая, как мы знаем, будет непрерывно повторяться в зависимости от объема ввода информации. Теперь, когда я хочу расширить представление списка, чтобы отобразить несколько пользовательских строк, я застрял в настройке своего кода и был бы признателен, если бы кто-то мог посмотреть.Как добавить дополнительную пользовательскую строку в список?
Я представил объяснение моей текущей установки.
Во-первых, у нас есть сам держатель вида, который работает как промежуточный для установки информации.
public class ViewHolderWine {
public ImageView wineImage;
public TextView wineName;
public TextView wineDes;
public TextView winePrice;
public void setDataIntoViewHolder (List_String listString){
wineImage.setImageResource(listString.getIcon_wine());
wineName.setText(listString.getWineName());
wineDes.setText(listString.getWinedes());
winePrice.setText(listString.getWinePrices());
}
Во-вторых, у нас есть свой List_String, в котором созданы геттеры и сеттеры.
public class List_String {
int icon_wine;
String wineName;
String winedes;
String winePrices;
public List_String(int icon_wine, String wineName, String winedes, String winePrices) {
this.icon_wine = icon_wine;
this.wineName = wineName;
this.winedes = winedes;
this.winePrices = winePrices;
}
public String getWinePrices() {
return winePrices;
}
public void setWinePrices(String winePrices) {
this.winePrices = winePrices;
}
etc......
Далее мы имеем ListFragment
public class List extends ListFragment {
java.util.List<List_String> lst;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
listData();
// Adapter custom;
Adapter myAdapter = new Adapter(getActivity(), R.layout.custom_list, lst);
setListAdapter(myAdapter);
return super.onCreateView(inflater, container, savedInstanceState);
}
public void listData() {
lst = new ArrayList<List_String>();
lst.add(new List_String(R.drawable.thumb, etc....
Наконец я тогда принес все части вместе с помощью адаптера.
public class Adapter extends ArrayAdapter<List_String> {
List<List_String> lstWine;
LayoutInflater inflater;
public Adapter(Context context, int resource, java.util.List<List_String> objects) {
super(context, resource, objects);
lstWine = objects;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
ViewHolderWine viewholder;
if (view == null){
viewholder = new ViewHolderWine();
view = inflater.inflate(R.layout.custom_list, null);
viewholder.wineImage = (ImageView) view.findViewById(R.id.wineImage);
viewholder.wineName = (TextView) view.findViewById(R.id.wineName);
viewholder.wineDes = (TextView) view.findViewById(R.id.wineDes);
viewholder.winePrice = (TextView) view.findViewById(R.id.winePrice);
view.setTag(viewholder);
}else{
viewholder = (ViewHolderWine) view.getTag();
}
List_String list = lstWine.get(position);
viewholder.setDataIntoViewHolder(list);
return view;
}
сделать вы хотите, чтобы сделать расширяющийся список? или вы просто хотите, чтобы некоторые нижние строки имели другой вид? – kampangala
В основном некоторые строки, которые имеют разные взгляды на один выше, чтобы я мог смешивать и сопоставлять. – Steven
содержат ли они данные того же типа? – kampangala