0

ActivityInfo のリストがあります。この各 ActiityInfo は、デバイスにインストールされているアプリを表します。ユーザーはリストのいくつかの項目を選択でき、次のアクティビティの起動のためにこれらの項目を保存したいと考えています。それ、どうやったら出来るの?SharedPreferences は知っていますが、文字列と int 用ですよね。

List<ActivityInfo> apps = new ArrayList<ActivityInfo>();
ActivityInfo infoToSave = (ActivityInfo) apps.get(position);

編集: 問題は、infoToSave を、さらにアプリを起動するために保存できる文字列に変換する方法でした。解決策は次のとおりです。

ComponentName name = new ComponentName(infoToSave.packageName, infoToSave.name);
String nameS = name.flattenToString();

この文字列は SharedPreferences に保存できます。しかし、すべての返信に感謝します!

4

2 に答える 2

0

まず、SharedPreferences は、ブール値またはその他のプロパティを使用できる文字列または int だけではなく、SQlite データベースも使用できます。

http://developer.android.com/reference/android/content/SharedPreferences.html

于 2013-10-22T18:54:03.480 に答える
0

ご存知のように、SharedPreferences は、タイプのキーと値のペア (通常は文字列) の少量のデータを格納するためによく利用されます。リストがシリアライズ可能な場合は、リストを SharedPreferences として保存できます。もちろん、onResume では、SharedPreferences を List にマップし直す必要があります。

または、ActivityInfo をローカル SQLite データベースの新しいスキーマ/テーブルにマップすることもできます。このアプローチは、contentResolvers を使用して ContentValues (保存したもの) の変更を観察し、SQLite DB に読み込むことができるため、複数のアクティビティにわたってよりスケーラブルです。

データベースへのデータの挿入とデータベースからのデータの読み取りについて詳しくは、http://developer.android.com/training/basics/data-storage/databases.htmlをご覧ください。

于 2013-10-22T18:50:55.420 に答える