Android Grid View с пользовательским базовым адаптером
Я начал изучать разработку Android. я делаю приложение, в котором я хочу показать миниатюры фильмов (представление изображения и текст), объединенные в макете просмотра сетки, я сделал пользовательский адаптер, но проблема в том, что я не могу понять, как показать вид изображения и текстовый вид вместе. я запускаю приложение, которое показывает пустой белый экран. Я пробовал много решений, а также много гуглил, но я не могу понять, как это сделать, пожалуйста, помогите мне. Вот мой код
public class ImageAdapter extends BaseAdapter {
private Context mContext;
private LayoutInflater inflater;
public ImageAdapter(Context c) {
mContext = c;
//
}
@Override
public int getCount() {
return mThumbIds.length;
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup viewGroup) {
NewHolder holder = null;
ImageView imageView;
inflater = (LayoutInflater) mContext.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
if(convertView==null){
holder = new NewHolder();
convertView =inflater.inflate(R.layout.activity_main,viewGroup,false);
holder.imageView = new ImageView(mContext);
holder.textView = new TextView(mContext);
holder.imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
holder.imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
// holder.textView.setLayoutParams(new GridView.LayoutParams(85, 85));
convertView.setTag(holder);
//textView.
// textView.setText("Hello");
holder.imageView.setPadding(8, 8, 8, 8);
}
else {
holder = (NewHolder) convertView.getTag();
//imageView= (ImageView) convertView. ;
//textView = (TextView) convertView;
}
// convertView.
holder.imageView.setImageResource(mThumbIds[position]);
// holder.textView.setText("hello");
return convertView;
}
private Integer[] mThumbIds = {
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
R.drawable.sample_6, R.drawable.sample_7,
R.drawable.sample_0, R.drawable.sample_1,
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
R.drawable.sample_6, R.drawable.sample_7,
R.drawable.sample_0, R.drawable.sample_1,
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
R.drawable.sample_6, R.drawable.sample_7
};
}
Основная деятельность
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GridView gridview = (GridView) findViewById(R.id.grid_view);
gridview.setAdapter(new ImageAdapter(this));
// setContentView(gridview);
}
Держатель Класс
public class NewHolder {
public ImageView imageView;
public TextView textView;
}
Основной XML-файл макета
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/grid_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="90dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>