自定义列表视图活动不断崩溃

时间:2017-08-02 15:41:50

标签: java android listview adapter

所以我有这个自定义列表适配器和listview,我似乎无法让它工作。我花了几天时间试图找出解决方法。更改此更改,似乎没有任何作用。任何的想法?感谢

MainActivity.class

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

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActvty";

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_inventory_actvity);
    Log.d(TAG, "onCreate, Started");

        ListView resList = (ListView)findViewById(R.id.inListView);

        resClass wood = new resClass("Wood", 10);
        resClass iron = new resClass("Iron", 50);
        resClass meat = new resClass("Meat", 5);

        ArrayList<resClass> resArrayList = new ArrayList<>();
        resArrayList.add(wood);
        resArrayList.add(iron);
        resArrayList.add(meat);
        ResListAdapter rsAdapter = new ResListAdapter(this, R.layout.activity_inventory_actvity, resArrayList);
        resList.setAdapter(rsAdapter);
    }
}

resClass.class

public class resClass {

    private String resType;
    private int resCount;

    public resClass(String resType, int resCount) {
        this.resType = resType;
        this.resCount = resCount;
    }

    public String getResType() {
        return resType;
    }

    public void setResType(String resType) {
        this.resType = resType;
    }

    public int getResCount() {
        return resCount;
    }

    public void setResCount(int resCount) {
        this.resCount = resCount;
    }
}

ResListAdapter.class

我猜这个适配器有问题。但我不太确定。

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import java.util.ArrayList;


class ResListAdapter extends ArrayAdapter<resClass>{

    private static final String TAG = "ResListAdapter";

    private Context mContext;
    int mResource;

    public ResListAdapter( Context context, int resource, ArrayList<resClass> objects) {
        super(context, resource, objects);
        mContext = context;
        mResource = resource;
    }

    @NonNull
    @Override
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        String resType = getItem(position).getResType();
        int resCount = getItem(position).getResCount();

        resClass res = new resClass(resType, resCount);

        LayoutInflater rsInflater = LayoutInflater.from(mContext);
        convertView = rsInflater.inflate(mResource, parent, false);

        TextView resTypeView = (TextView)convertView.findViewById(R.id.res_name);
        TextView resCountView = (TextView)convertView.findViewById(R.id.res_count);

        resTypeView.setText(resType);
        resCountView.setText(Integer.toString(resCount));

        return convertView;
    }
}

xml文件

MainActivity

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="p_darkness.lonemandevelopmentstudio.com.p_darkness.MainActivity">

    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:layout_editor_absoluteX="8dp"
        tools:layout_editor_absoluteY="8dp"
        android:id="@+id/inListView"/>
</RelativeLayout>

listview的自定义布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:orientation="horizontal"
    android:weightSum="100"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/res_name"
        android:textColor="#000"
        android:textSize="17sp"
        android:layout_width="wrap_content"
        android:layout_height="60dp"
        android:gravity="center"
        android:layout_weight="50"
        android:text="res_name"
        android:textAlignment="center"/>

    <TextView
        android:id="@+id/res_count"
        android:textColor="#000"
        android:textSize="15sp"
        android:textAlignment="center"
        android:layout_width="wrap_content"
        android:layout_height="60dp"
        android:gravity="center"
        android:layout_weight="50"
        android:text="res_count"
        />
</LinearLayout>

非常令人沮丧的是,希望我能通过询问这个时间找到解决方案。

0 个答案:

没有答案