اشکال در نمایش عکس در لیست ویو سفارشی

0 امتیاز
89 بازدید
سوال شده بهمن 8, 1394 توسط android  

سلام جناب آشکاران

من یه ListView سفارشی دارم کار میکنم و میخوام واسه هر آیتم یه عکس رو نمایش بده و از کدهای زیر استفاده کردم اما زمان اجرا فقط همون یک عکس پیشفرضی که انتخاب کردم رو نمایش میده لطفا راهنمایی کنید.کدهای زیر مربوط به کلاس دومی هستش که ایجاد کردم واسه ارث بری از ArrayAdapterمرسی

 

package com.prg.linux.customlistview;

import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;

import java.util.List;

/**
 * Created by linux on 1/28/16.
 */

public class MyAdapter extends ArrayAdapter<String>{
    Context c;
    List<String> data;
    public MyAdapter(Context context, int resource,int textViewResourceId, List<String> objects) {
        super(context, resource,textViewResourceId, objects);
        this.c = context;
        this.data = objects;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater)this.c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view = inflater.inflate(R.layout.customlayout,parent,false);

        ImageView img = (ImageView)view.findViewById(R.id.imageView);

        Drawable drawable = null;
        if(position == 0){
            drawable = this.c.getResources().getDrawable(R.drawable.android_icon);
        }else if(position == 1){
            drawable = this.c.getResources().getDrawable(R.drawable.ios_apple_icon);
        }else if(position == 2){
            drawable = this.c.getResources().getDrawable(R.drawable.drive_windows_icon);
        }
        img.setImageDrawable(drawable);


        return super.getView(position, convertView, parent);
    }
}

 

 

این هم کدهای اکتیویتی اصلی

package com.prg.linux.customlistview;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    ListView listView;
    List<String> list;
    MyAdapter myadapter;
 

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = (ListView) findViewById(R.id.listView);
        list = new ArrayList<String>();
        list.add("android");
        list.add("ios");
        list.add("WindowsPhone");


        myadapter = new MyAdapter(this , R.layout.customlayout , R.id.txt , list);
        listView.setAdapter(myadapter);


       
    }
}

 

این مطلب را به اشتراک بگذارید

1 پاسخ

0 امتیاز
پاسخ داده شده بهمن 11, 1394 توسط ASHKARAN  

با عرض سلام

مشکل از خط آخر کلاس MyAdapter  شماست !

return super.getView(position, convertView, parent);

وقتی شما از این خط کد استفاده بفرمایید در واقع تابع getView کلاس ArrayAdapter فراخوانی میشه و کدهایی که در کلاس MyAdapter نوشتید به نمایش در نمیاد

باز هم تاکید می کنم کدهای شما کار می کنه اما به نمایش در نمیاد.

برای رفع این مشکل کافیه به جای خط مذکور از کد زیر استفاده بفرمایید:

return view ;
//hamash hamin :)

 

733 سوال

672 پاسخ

1,177 دیدگاه

335 کاربر

متاسفانه نیستم

این مطلب را به اشتراک بگذارید

ali.ashkaran@gmail
ما .....
  • سعی بر پاسخگویی به سوالات دیگران داریم.
  • به سوال و یا نظر دیگران احترام می گذاریم .
  • این وبسایت را به دیگران معرفی می کنیم.
  • همواره صمیمیت و ادب را رعایت می کنیم.
  • به سوالمان برچسب های مرتبط اضافه می کنیم.
  • در حین طرح سوال فرد خاصی را مخاطب قرار نمی دهیم .
...