1

long でコンストラクターを呼び出しています。ただし、long フィールドは -1 に設定されます。

LogCat: "パックの ID を -29270339915449391104 に設定します。getID() は -1 を返すようになりました"

理由がわかりません。long を入れると、変換の問題は発生しませんか? 私は何が欠けていますか?

private long ID;

public AFileOrPackView(Context context, long ID) {
    super(context);

    this.ID = ID;
    Log.d("asd", "set the pack's id to " + ID + ". getID() now returns " + this.getId());
}

public Long getID() {
    return this.ID;
}
4

2 に答える 2

4

コードにタイプミスがあります。

this.getId()

する必要があります

this.getID()

Longまた、オブジェクトを返す必要がない場合は、代わりにlongプリミティブ型を返す必要があります。変化 :

public Long getID() {
    return this.ID;
}

public long getID() {
    return this.ID;
}
于 2013-01-08T13:07:09.343 に答える
1

既存の Android ビュー タイプを拡張していますか? ID を持つレイアウト ファイルの一部ではないビューの ID を返そうとした場合、または ID を明示的に指定した場合、継承された ID の値は -1 になり、NO_ID を示します。

質問の情報が限られているため、これが当てはまるかどうかを判断するのは難しいです。

于 2013-01-08T13:12:05.890 に答える