没有将模型类中的值转换为适配器

时间:2018-06-16 11:36:02

标签: android

我有一个模特班"财务"我需要在我的适配器中使用Finance类,但我无法做到这一点。我将Finance类对象作为null。任何人都可以帮助我。

Adapter

    partyName.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
             Finance finance =new Finance() ;
            Intent intent = new Intent(context, MainActivity.class);
            intent.putExtra("name_of_extra", finance);
            context.startActivity(intent);
        }
    });

Finance.class

public class Finance implements Parcelable {

    private String partyName;
    private String bankName;
    private Date reminderDate;
    private int id;
    private Date expiryDate;
    private String amount;
    private String chequeNumber;
    private String reminder;
    private boolean closed=false;


    public Finance() {

    }

    public Finance(String partyName, String bankName,String reminder, int id) {
        this.partyName = partyName;
        this.bankName = bankName;
        this.reminder = reminder;
        this.id = id;

    }

    protected Finance(Parcel in) {
        partyName = in.readString();
        bankName = in.readString();
        id = in.readInt();
        amount = in.readString();
        chequeNumber = in.readString();
        reminder = in.readString();
        closed = in.readByte() != 0;
    }

    public static final Creator<Finance> CREATOR = new Creator<Finance>() {
        @Override
        public Finance createFromParcel(Parcel in) {
            return new Finance(in);
        }

        @Override
        public Finance[] newArray(int size) {
            return new Finance[size];
        }
    };

    public String getPartyName() {
        return partyName;
    }

    public void setPartyName(String partyName) {
        this.partyName = partyName;
    }

    public String getChequeNumber() {
        return chequeNumber;
    }

    public void setChequeNumber(String chequeNumber) {
        this.chequeNumber = chequeNumber;
    }

    public Date getExpiryDate() {
        return expiryDate;
    }

    public void setExpiryDate(Date expiryDate) {
        this.expiryDate = expiryDate;
    }

    public String getAmount() {
        return amount;
    }

    public void setAmount(String amount) {
        this.amount = amount;
    }

    public String getBankName() {
        return bankName;
    }

    public void setBankName(String bankName) {
        this.bankName = bankName;
    }

    public String getReminder() {
        return reminder;
    }

    public void setReminder(String reminder) {
        this.reminder = reminder;
    }

    public Date getReminderDate() {
        return reminderDate;
    }

    public void setReminderDate(Date reminderDate) {
        this.reminderDate = reminderDate;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public boolean isClosed() {
        return closed;
    }

    public void setClosed(boolean closed) {
        this.closed = closed;
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(partyName);
        dest.writeString(bankName);
        dest.writeInt(id);
        dest.writeString(amount);
        dest.writeString(chequeNumber);
        dest.writeString(reminder);
        dest.writeByte((byte) (closed ? 1 : 0));
    }
}

2 个答案:

答案 0 :(得分:0)

检查你的按钮点击你没有设置任何值在这个按钮点击你创建了一个新的对象,你没有传递任何值,所以它是null

使用它并根据需要更改值

    Finance finance =new Finance("test","test","test",1) ;
    Intent intent = new Intent(context, MainActivity.class);
    intent.putExtra("name_of_extra", finance);
    context.startActivity(intent);

而不是

Finance finance =new Finance() ;
            Intent intent = new Intent(context, MainActivity.class);
            intent.putExtra("name_of_extra", finance);
            context.startActivity(intent);

答案 1 :(得分:0)

你没有正确实现它,实际上你没有在构造函数中传递参数,它应该是这样的:

Finance finance =new Finance("party_name","bank_name","reminder",1) ;
Intent intent = new Intent(context, MainActivity.class);
intent.putExtra("name_of_extra", finance);
context.startActivity(intent);

Finance finance = new Finance();
finance.setPartyName("test_name_1");
finance.setBankName("test_name_2");
finance.setReminder("test_name_3");
finance.setId(1);
Intent intent = new Intent(context, MainActivity.class);
intent.putExtra("name_of_extra", finance);
context.startActivity(intent);

您可以随时检查空引用,如:

if(finance!=null){
 Intent intent = new Intent(context, MainActivity.class);
 intent.putExtra("name_of_extra", finance);
 context.startActivity(intent);
}