-2
public void onItemClick(AdapterView<?> parent, View view, int position,long row) {

    PackageInfo packageInfo = (PackageInfo) parent
            .getItemAtPosition(position);
    AppData appData = (AppData) getApplicationContext();
    appData.setPackageInfo(packageInfo);

    Intent appInfo = new Intent(getApplicationContext(), ApkInfo.class);
    startActivity(appInfo);
}

LISTVIEW でリストを表示しているときに、選択したアプリをクリックすると、アプリケーション パッケージ情報が表示されるはずですが、選択したアプリをクリックすると、アプリケーションが自動的に閉じられ、エラー ログが取得され、完璧なソリューションが提案されます。

エラーログ情報

4

3 に答える 3

1

Applicationクラスを拡張するAppDataという名前のクラスを作成していると思います。そのため、マニフェストでクラスを定義する必要があります。マニフェストファイルの Application タグ内に書き込み:エラーが解決されます。 AppData が存在するパッケージのandroid:name="yourpackagename.AppData"

例:

<application
        android:name="yourpackagename.AppData"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
于 2015-03-30T09:47:50.000 に答える
0

getApplicationContext();AppDataではなくContext(この場合はApplicationクラス)を返します-それがClassCastExceptionを取得する理由です。 アダプターから取得したばかりの
詳細を取得したい。packageInfo

于 2015-03-30T09:05:41.673 に答える