Java 自定义阵列适配器未在listview中显示数据

Java 自定义阵列适配器未在listview中显示数据,java,android,listview,android-fragments,android-arrayadapter,Java,Android,Listview,Android Fragments,Android Arrayadapter,这是我的wordAdapter。当我打开片段时,它没有显示任何结果。请帮助我,因为我是一个android开发新手。片段页面为空,运行时也没有显示任何错误。所以,请告诉我我遗漏了什么,这段代码有什么问题 public class wordAdapter extends ArrayAdapter<word> { private Context context; private List<word> wrd; private SharedPreferen

这是我的
wordAdapter
。当我打开
片段时,它没有显示任何结果。请帮助我,因为我是一个android开发新手。
片段
页面为空,运行时也没有显示任何错误。所以,请告诉我我遗漏了什么,这段代码有什么问题

public class wordAdapter extends ArrayAdapter<word> {
    private Context context;
    private List<word> wrd;
    private SharedPreference sharedPreference;

    public wordAdapter(Context context, List<word> wrd) {
        super(context, R.layout.item, wrd);
        this.context = context;
        this.wrd = wrd;
        sharedPreference = new SharedPreference();
    }

    private class ViewHolder {
        TextView productNameTxt;
        TextView productTypeTxt;
        ImageView favoriteImg;
    }

    @Override
    public int getCount() {
        return wrd.size();
    }

    @Override
    public word getItem(int position) {
        return wrd.get(position);
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
        if (convertView == null) {
            LayoutInflater inflater = (LayoutInflater) context
                    .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.item, null);
            holder = new ViewHolder();
            holder.productNameTxt = (TextView) convertView
                    .findViewById(R.id.carname);
            holder.productTypeTxt = (TextView) convertView
                    .findViewById(R.id.cartype);
            holder.favoriteImg = (ImageView) convertView
                    .findViewById(R.id.favu);

            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        word wrdn = (word) getItem(position);
        holder.productNameTxt.setText(wrdn.getName());
        holder.productTypeTxt.setText(wrdn.getType());

        /*If a product exists in shared preferences then set heart_red drawable
         * and set a tag*/
        if (checkFavoriteItem(wrdn)) {
            holder.favoriteImg.setImageResource(R.drawable.fav);
            holder.favoriteImg.setTag("red");
        } else {
            holder.favoriteImg.setImageResource(R.drawable.unfav);
            holder.favoriteImg.setTag("grey");
        }

        return convertView;
    }

    /*Checks whether a particular product exists in SharedPreferences*/
    private boolean checkFavoriteItem(word checkwrdn) {
        boolean check = false;
        List<word> favorites = sharedPreference.getFavorites(context);
        if (favorites != null) {
            for (word wrdn : favorites) {
                if (wrdn.equals(checkwrdn)) {
                    check = true;
                    break;
                }
            }
        }
        return check;
    }

    @Override
    public void add(word wrdn) {
        super.add(wrdn);
        wrd.add(wrdn);
        notifyDataSetChanged();
    }

    @Override
    public void remove(word wrdn) {
        super.remove(wrdn);
        wrd.remove(wrdn);
        notifyDataSetChanged();
    }
}
这是我的
片段
文件和数据

public class Cars extends android.support.v4.app.Fragment implements
        AdapterView.OnItemClickListener,                             
    AdapterView.OnItemLongClickListener {

    public static final String ARG_PAGE = "ARG_PAGE";

    public static Favourites newInstance(int page) {
        Bundle args = new Bundle();
        args.putInt(ARG_PAGE, page);
        Favourites fragment = new Favourites();
        fragment.setArguments(args);
        return fragment;
    }

    Activity activity;
    ListView productListView;
    List<word> wrds;
    wordAdapter wrdAdapter;

    SharedPreference sharedPreference;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        activity = getActivity();
        sharedPreference = new SharedPreference();
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.list, container,
                false);
        findViewsById(view);

        setProducts();

        wrdAdapter = new wordAdapter(activity, wrds);
        productListView.setAdapter(wrdAdapter);
        productListView.setOnItemClickListener(this);
        productListView.setOnItemLongClickListener(this);
        return view;
    }

    private void setProducts() {

        word product1 = new word("Lamborghini Huracan", "Sport");
        word product2 = new word("Lamborghini Aventador", "Sport");
        word product3 = new word("Jaguar XF", "Luxury Sedan");
        word product4 = new word("Audi A4", "Luxury Sedan");
        word product5 = new word("Ferrari 488", "Sport");
        word product6 = new word("BMW i8", "Hybrid Sport");
        word product7 = new word("Audi TT", "Sport");

        wrds = new ArrayList<word>();
        wrds.add(product1);
        wrds.add(product2);
        wrds.add(product3);
        wrds.add(product4);
        wrds.add(product5);
        wrds.add(product6);
        wrds.add(product7);
    }

    private void findViewsById(View view) {
        productListView = (ListView) view.findViewById(R.id.list_product);
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
                            long id) {
        word product = (word) parent.getItemAtPosition(position);
        Toast.makeText(activity, product.toString(), Toast.LENGTH_LONG).show();
    }

    @Override
    public boolean onItemLongClick(AdapterView<?> arg0, View view,
                                   int position, long arg3) {
        ImageView button = (ImageView) view.findViewById(R.id.favu);

        String tag = button.getTag().toString();
        if (tag.equalsIgnoreCase("grey")) {
            sharedPreference.addFavorite(activity, wrds.get(position));

            button.setTag("red");
            button.setImageResource(R.drawable.fav);
        } else {
            sharedPreference.removeFavorite(activity, wrds.get(position));
            button.setTag("grey");
            button.setImageResource(R.drawable.unfav);
        }

        return true;
    }

    @Override
    public void onResume() {
        getActivity().setTitle(R.string.app_name);
        getActivity().getActionBar().setTitle(R.string.app_name);
        super.onResume();
    }
}
public-class-Cars扩展了android.support.v4.app.app
AdapterView.OnItemClickListener,
AdapterView.OnItemLongClickListener{
公共静态最终字符串ARG\u PAGE=“ARG\u PAGE”;
公共静态收藏夹newInstance(int页){
Bundle args=新Bundle();
args.putInt(ARG_页,第页);
收藏夹片段=新收藏夹();
fragment.setArguments(args);
返回片段;
}
活动;
ListView产品ListView;
列表WRD;
字适配器;
SharedReference SharedReference;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
activity=getActivity();
SharedReference=新的SharedReference();
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图=充气机。充气(右布局列表,容器,
假);
FindViewById(视图);
setProducts();
wrdAdapter=新字适配器(活动,wrds);
setAdapter(wrdAdapter);
productListView.setOnItemClickListener(此);
productListView.setOnItemLongClickListener(此);
返回视图;
}
私有产品(){
word product1=新词(“兰博基尼胡拉坎”、“运动”);
word product2=新词(“兰博基尼大道”、“运动”);
单词product3=新词(“捷豹XF”、“豪华轿车”);
单词product4=新词(“奥迪A4”,“豪华轿车”);
单词product5=新词(“法拉利488”,“运动”);
word product6=新词(“宝马i8”、“混合动力运动”);
单词product7=新单词(“奥迪TT”、“运动”);
wrds=新的ArrayList();
新增(产品1);
新增(产品2);
新增(产品3);
新增(产品4);
新增(产品5);
新增(产品6);
新增(产品7);
}
私有void findViewsById(视图){
productListView=(ListView)view.findViewById(R.id.list\u产品);
}
@凌驾
public void onItemClick(AdapterView父视图、视图、整型位置、,
长id){
word product=(word)parent.getItemAtPosition(position);
Toast.makeText(活动,product.toString(),Toast.LENGTH_LONG).show();
}
@凌驾
长单击(AdapterView arg0,视图,
整数位置,长arg3){
ImageView按钮=(ImageView)view.findViewById(R.id.favu);
字符串标记=button.getTag().toString();
if(标记为“灰色”){
sharedReference.addFavorite(活动,wrds.get(位置));
按钮。设置标签(“红色”);
按钮.setImageResource(R.drawable.fav);
}否则{
SharedReference.removeFavorite(活动,wrds.get(位置));
按钮。设置标签(“灰色”);
按钮.setImageResource(R.drawable.unav);
}
返回true;
}
@凌驾
恢复时公开作废(){
getActivity().setTitle(R.string.app_name);
getActivity().getActionBar().setTitle(R.string.app_name);
super.onResume();
}
}
这是我的列表视图

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#EDEDED" >

<ListView
    android:id="@+id/list_product"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:dividerHeight="10dp"
    android:drawSelectorOnTop="true"
    android:footerDividersEnabled="false"
    android:padding="10dp"
    android:scrollbarStyle="outsideOverlay" >

</ListView>
</RelativeLayout>

这是项目视图

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:descendantFocusability="blocksDescendants" >

    <RelativeLayout
        android:id="@+id/pdt_layout_item"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/carname"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="6dp" />

        <TextView
            android:id="@+id/cartype"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/carname"
            android:padding="6dp" />

        <ImageView
            android:id="@+id/favu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_marginRight="3dp"
            android:background="@null" />
    </RelativeLayout>

    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_below="@id/pdt_layout_item"/>

    </RelativeLayout>


请添加
列表
布局。无需存储
私人列表wrd因为ArrayAdapter为您做这件事。我认为您覆盖了太多的方法。@ReazMurshed好的,我将添加列表布局。。然后请看我如何解决这个问题@RadekJ所以,兄弟,根据你我应该做什么,我的意思是我应该添加或删除什么??我会将数据传递给默认构造函数(
ArrayAdapter(上下文上下文、int资源、列表对象)
)并只覆盖
getView
。请添加
List
布局。不需要存储
private List wrd因为ArrayAdapter为您做这件事。我认为您覆盖了太多的方法。@ReazMurshed好的,我将添加列表布局。。然后请看我如何解决这个问题@RadekJ所以,兄弟,根据你的说法,我应该做什么,我的意思是我应该添加或删除什么?我会将数据传递给默认构造函数(
ArrayAdapter(上下文上下文、int资源、列表对象)
),并只覆盖
getView
)。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:descendantFocusability="blocksDescendants" >

    <RelativeLayout
        android:id="@+id/pdt_layout_item"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/carname"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="6dp" />

        <TextView
            android:id="@+id/cartype"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/carname"
            android:padding="6dp" />

        <ImageView
            android:id="@+id/favu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_marginRight="3dp"
            android:background="@null" />
    </RelativeLayout>

    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_below="@id/pdt_layout_item"/>

    </RelativeLayout>