0
Как сделать comapre с помощью arraylist? Бланк формы ниже - мой код. Я просто хочу отфильтровать только те значения, которые присутствуют в базе данных. Я просто хочу, чтобы отфильтровать список массивов на этой линииКак сравнить строку с arraylist
if (arraylist.equals(p.packageName))
так показывает только то, что имя пакета, которые являются матчем с базой данных, что мне делать?
DatabaseHandler db;
private List<App> loadInstalledApps(boolean includeSysApps) {
List<App> apps = new ArrayList<App>();
// the package manager contains the information about all installed apps
PackageManager packageManager = getPackageManager();
List<PackageInfo> packs = packageManager.getInstalledPackages(0);
List arraylist = db.getAllApps();
for (int i = 0; i < packs.size(); i++) {
PackageInfo p = packs.get(i);
ApplicationInfo applicationInfo = p.applicationInfo;
if (arraylist.equals(p.packageName))
{
App app = new App();
app.setTitle(p.applicationInfo.loadLabel(packageManager).toString());
app.setPackageName(p.packageName);
app.setVersionName(p.versionName);
app.setVersionCode(p.versionCode);
CharSequence description = p.applicationInfo.loadDescription(packageManager);
app.setDescription(description != null ? description.toString(): "");
apps.add(app);
}
}
return apps;
}
public class DatabaseHandler extends SQLiteOpenHelper {
// All Static variables // Database Version
private static final int DATABASE_VERSION = 1;
// Database Name
private static final String DATABASE_NAME = "contactsManager";
// Contacts table name
private static final String TABLE_CONTACTS = "contacts";
// Contacts Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
//private static final String KEY_PH_NO = "phone_number";
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
// String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("+
// KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"+ KEY_PH_NO + " TEXT" + ")";
String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS +
"("+ KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT" + " UNIQUE " + ")";
db.execSQL(CREATE_CONTACTS_TABLE);
}
public ArrayList<String> getAllApps() {
String selectQuery = "SELECT * FROM "+TABLE_CONTACTS;
ArrayList<String> apps = new ArrayList<String>();
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
apps.add(cursor.getString(cursor.getColumnIndex(KEY_NAME)));
} while (cursor.moveToNext());
}
// return list
return apps;
}
}
вот мой полный код http://stackoverflow.com/questions/17280519/android-how-to- match-values-with-database Я просто хочу показать только это имя пакета в списке, которые соответствуют базе данных, что делать ido ??? –
подведение итогов на ваш вопрос. вам нужен только тот пакет, который присутствует в вашей базе данных? – MDMalik
yesssssssssssssssss –