Пользовательский просмотр списка в android не работает. Приложение перестает работать. Просмотр изображений не показывает изображения - PullRequest
0 голосов
/ 11 февраля 2020

Я новичок в android студии, пытаюсь научиться этому. Я пытался сделать список с помощью специального адаптера для отображения изображения и текста. Но это перестает работать. Я попробовал все на inte rnet, но не сработало. Я выяснил, что ошибка в publi c Просмотр метода getView (int position, View view, ViewGroup parent) в строке ImageView.setImageResource (R.drawable.ic_launcher ); Но я изо всех сил пытаюсь решить это. Пожалуйста, помогите.

public class MyListAdapter extends ArrayAdapter<String> {
private final Activity context;
private final String[] ProgName;
private final Integer[] ProgImages;

public MyListAdapter(Activity context, String[] progName, Integer[] progImages) {
    super(context,R.layout.activity_image_list,progName);
    this.context = context;
    this.ProgName = progName;
    this.ProgImages = progImages;

}

    public View getView(int position,View view,ViewGroup parent){


    LayoutInflater inflater = context.getLayoutInflater ();
    View rowView=inflater.inflate (R.layout.activity_image_list,null,true);
    TextView txtTitle = (TextView)rowView.findViewById (R.id.txtName);
    ImageView ImageView = (ImageView)rowView.findViewById (R.id.ImageList1);

    ImageView.setImageResource (ProgImages[position]);
    txtTitle.setText ((ProgName[position]));

    ImageView.setImageResource (R.drawable.ic_launcher);


    return rowView;
    }

MainActivity.java

public class MainActivity extends AppCompatActivity {

ListView list;
Context context;
ArrayList Prglist;
private static final String TAG = "MainActivity";

public static Integer[] ProgImages = {
        R.drawable.ic_launcher1, 
R.drawable.ic_launcher1,R.drawable.ic_launcher1,
R.drawable.ic_launcher1
};

public static String[] ProgName = {
        "Java", "C", "Pascal", "Python"
};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate (savedInstanceState);
    setContentView (R.layout.activity_main);
    MyListAdapter adapter=new MyListAdapter(this, ProgName, ProgImages);

    list=(ListView)findViewById(R.id.list);
    list.setAdapter(adapter);

}}

Ответы [ 3 ]

0 голосов
/ 11 февраля 2020

Попробуйте использовать библиотеки фотографий, такие как Picasso или Glide, для просмотра изображений.

0 голосов
/ 11 февраля 2020

Похоже, вы использовали Drawable изображение в просмотре изображений. Может быть, попробуйте это ...

imgView.setImageDrawable(getResources().getDrawable(R.drawable.ic_launcher));

или вы можете использовать Picasso или Glide Library для повышения производительности ...

0 голосов
/ 11 февраля 2020

Если массив ProgImages является ресурсом (например, R.drawable.icon), вы можете использовать метод getResources. Попробуй это;

в действии;

ImageView.setImageResource(getResources(ProgImages[position]));

во фрагменте;

ImageView.setImageResource(getActivity().getResources(ProgImages[position]));
...