我有这样的功能

  private void goToSalesActList(View view) {
    CustomerActivity ca = (CustomerActivity)view.getTag();
    Intent intent = new Intent(this, SalesActListActivity.class);
    Bundle bundle = new Bundle();
    bundle.putParcelable(Const.OBJ_USER, user);
    bundle.putParcelable("CustomerListActivity", ca);
    intent.putExtras(bundle);
    startActivity(intent);
  }


我在该行上出现类似blockquote的错误


  java.lang.ClassCastException:com.kreators.nvmobile.dashboard.AdapterSalesAct $ ViewHolder无法转换为com.kreators.nvmobile.dashboard.SalesActActivity $ CustomerActivity


CustomerActivity ca = (CustomerActivity)view.getTag();


简而言之,我想在类函数CustomerActivity上打包一些数据以意图使用SalesActListActivity,但是我有这样的错误。谁能帮我 ?
至少,这是我的CustomerActivity函数

static class CustomerActivity implements Parcelable {
public int id, qty, AROD, HAVE, Visit;
public String code, name, sales, salesname, target, amt, psi;

public CustomerActivity(JSONObject o) {
  try {
    id = o.getInt("CustId");
    code = o.getString("CustCode");
    name = o.getString("CustDesc");
    salesname = o.getString("Salesname");
    sales = o.getString("Sales");
    target = o.getString("SITarget");
    amt = o.getString("SIAmt");
    psi = o.getString("persenPSI");
    qty = o.getInt("SOQty");
    AROD= o.getInt("AROD");
    HAVE= o.getInt("HAVE");
    Visit= o.getInt("Visit");
  } catch (JSONException e) {}
}

protected CustomerActivity(Parcel in) {
  id = in.readInt();
  qty = in.readInt();
  code = in.readString();
  name = in.readString();
  salesname = in.readString();
  sales = in.readString();
  target = in.readString();
  amt = in.readString();
  psi = in.readString();
  AROD = in.readInt();
  HAVE = in.readInt();
  Visit = in.readInt();
}

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

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

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

@Override
public void writeToParcel(Parcel parcel, int i) {
  parcel.writeInt(id);
  parcel.writeInt(qty);
  parcel.writeString(code);
  parcel.writeString(name);
  parcel.writeString(salesname);
  parcel.writeString(sales);
  parcel.writeString(target);
  parcel.writeString(amt);
  parcel.writeString(psi);
  parcel.writeInt(AROD);
  parcel.writeInt(HAVE);
  parcel.writeInt(Visit);
}


}


  java.lang.ClassCastException:com.kreators.nvmobile.dashboard.AdapterSalesAct $ ViewHolder无法转换为com.kreators.nvmobile.dashboard.SalesActActivity $ CustomerActivity
                        在com.kreators.nvmobile.dashboard.SalesActActivity.goToSalesActList(SalesActActivity.java:210)
                        在com.kreators.nvmobile.dashboard.SalesActActivity.access $ 000(SalesActActivity.java:33)
                        在com.kreators.nvmobile.dashboard.SalesActActivity $ 1.onItemClick(SalesActActivity.java:256)
                        在android.widget.AdapterView.performItemClick(AdapterView.java:305)
                        在android.widget.AbsListView.performItemClick(AbsListView.java:1146)
                        在android.widget.AbsListView $ PerformClick.run(AbsListView.java:3053)
                        在android.widget.AbsListView $ 3.run(AbsListView.java:3865)
                        在android.os.Handler.handleCallback(Handler.java:739)
                        在android.os.Handler.dispatchMessage(Handler.java:95)
                        在android.os.Looper.loop(Looper.java:135)
                        在android.app.ActivityThread.main(ActivityThread.java:5345)
                        在java.lang.reflect.Method.invoke(本机方法)
                        在java.lang.reflect.Method.invoke(Method.java:372)
                        在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:947)
                        在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:742)


那是我的错误信息

对不起,我的语法不好,我是新手
谢谢

最佳答案

更换

CustomerActivity ca = (CustomerActivity)view.getTag();




CustomerActivity ca = (CustomerActivity)view.getContext();


在Android中,每个View实例(一旦创建)都可以访问它的Context,在大多数情况下,该实例将是Activity

*有时这将是ApplicationContext的另一种实现。

关于java - java.lang.ClassCastException适配器转换为Activity,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49117229/

10-12 00:29
查看更多