#java #android #android-layout #android-activity #android-gridview
#java #Android #android-макет #android-активность #android-gridview
Вопрос:
Это мой код:
public class CustomGridAdapter extends BaseAdapter{
Context ctx;
String [] items ={"72","58","67","77","90"} ; //Can be images or video or any other content
String [] stuff = {"bus to town ","Bus to north","Bus to west","Bus to east","Bus out"};
public CustomGridAdapter(Context c) {
ctx = c;
}
@Override
public int getCount() {
return items.length;
}
@Override
public Object getItem(int position) {
return items[position];
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView tv = new TextView(ctx);
TextView tv2 = new TextView(ctx);
tv.setText(String.valueOf(items[position]));
tv2.setText(String.valueOf(stuff[position]));
return tv;
}
}
Нужна помощь, пытаясь выяснить, как отобразить tv2 ниже tv. Есть предложения?
Комментарии:
1. Почему бы вам не создать XML-макет и не раздуть эти xml в методе getView (….)?
Ответ №1:
Вам нужно создать вертикальное линейное представление:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LinearLayout layout = new LinearLayout(ctx);
layout.setOrientation(LinearLayout.VERTICAL);
layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
LayoutParams lparams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
TextView tv = new TextView(ctx);
TextView tv2 = new TextView(ctx);
tv.setLayoutParams(lparams);
tv2.setLayoutParams(lparams);
tv.setText(String.valueOf(items[position]));
tv2.setText(String.valueOf(stuff[position]));
layout.addView(tv);
layout.addView(tv2);
return layout;
}
Комментарии:
1. LinearLayout layout = new LinearLayout(this);, это не работает какие-либо предложения о том, как заставить это работать?
2. Конструктор LinearLayout (CustomGridAdapter) не определен, как то, что он говорит
3. Я исправил опечатку, замените это на ctx