我有这样的功能
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
。*有时这将是
Application
或Context
的另一种实现。关于java - java.lang.ClassCastException适配器转换为Activity,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49117229/