Я разрабатываю приложение, в котором у меня есть список профилей, который хранится в базе данных, содержащей слишком много профилей, проблема в том, что при сохранении нового профиля приложение должно иметь проверьте профиль уже существует или нет .... как это сделатьсравнить строку со значениями столбца базы данных
mSaveProfile.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
CProfileDataSource m_profileDataSource = new CProfileDataSource(CAddNewProfileActivity.this);
_profile = mProfileName.getText().toString();
if (_profile.matches(""))
{
Toast.makeText(CAddNewProfileActivity.this, "You did not enter a profileName", Toast.LENGTH_SHORT).show();
return;
} else if(_profile.equalsIgnoreCase(getProfileName(CAddNewProfileActivity.this)))
{
Toast.makeText(CAddNewProfileActivity.this, "Profile already exists", Toast.LENGTH_SHORT).show();
return;
}
else
{
userProfile.setProfileName(_profile);
m_profileDataSource.addProfile(new CUserProfile(CAddNewProfileActivity.this, userProfile.getProfileName(), userProfile.getBrightness(), userProfile.getSleepTime(), m_n8SensorState, userProfile.getOptimization()));
Toast.makeText(CAddNewProfileActivity.this, "Saved", Toast.LENGTH_SHORT).show();
}
finish();
}
});
и следующая функция проверяет только последний введенный профиль не весь список ..
public String getProfileName(CAddNewProfileActivity cAddNewProfileActivity){
String profile=null;
CProfileDataSource profileDataSource =new CProfileDataSource(cAddNewProfileActivity);
List<CUserProfile> profileName=profileDataSource.getAllProfiles();
for(CUserProfile cp:profileName){
profile=cp.getProfileName();
}
return profile;
}
Если вы используете SQLite: http://stackoverflow.com/a/24573979/4706693 – NSimon
Есть ли какой-либо идентификатор или уникальный столбец, который генерируется пользователем, а не сгенерирован автоматически? Проверьте это же в столбце базы данных. Если доступно, то уже существует else не существует –
@sam :: вы используете sqlite (OR) любой ORM .. – Jeevanandhan