Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
squirty
0 / 0 / 0
Регистрация: 03.05.2018
Сообщений: 1
1

Удаление элемента ListView при нажатии на него

03.05.2018, 12:45. Просмотров 264. Ответов 0
Метки нет (Все метки)

Помогите пожалуйста с ListView и DataBaseHelper.

Есть два класса:

Первый класс:
public class DataBaseHelper extends SQLiteOpenHelper {

public static final String DATABASE_NAME = "mylist.db";
public static final String TABLE_NAME = "mylist_data";
public static final String COL1 = "ID";
public static final String COL2 = "ITEM1";


public DataBaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}

@Override
public void onCreate(SQLiteDatabase db) {
String createTable = "CREATE TABLE " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, " + " ITEM1 TEXT)";
db.execSQL(createTable);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP IF TABLE EXISTS " + TABLE_NAME);
onCreate(db);
}

public boolean addData(String item1) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL2, item1);

long result = db.insert(TABLE_NAME, null, contentValues);

//if date as inserted incorrectly it will return -1
if (result == -1) {
return false;
} else {
return true;
}
}
public Cursor getListContents(){
SQLiteDatabase db = this.getWritableDatabase();
Cursor data = db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
return data;
}
}

Второй класс:
public class TeacherList extends AppCompatActivity {

private ListView list;
private EditText editText;
private DataBaseHelper myDB;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.teacher);

Toolbar toolbar = findViewById(R.id.toolbar_back);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
toolbar.setNavigationIcon(R.drawable.ic_back);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(), Weekly.class));
}
});

editText = findViewById(R.id.editText2);
showData();

// ArrayList<String> theList = new ArrayList<>();
list = findViewById(R.id.listView);
// ListAdapter listAdapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,theList);

list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(TeacherList.this, "itemClick: position = " + position + ", id = " + id, Toast.LENGTH_SHORT).show();
}
});
}

@Override
public boolean dispatchTouchEvent(@NonNull MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
View v = getCurrentFocus();
if (v instanceof EditText) {
v.clearFocus();
InputMethodManager imm = (InputMethodManager) getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
assert imm != null;
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
}
return super.dispatchTouchEvent(event);
}

public void showData() {
ListView listView = findViewById(R.id.listView);
myDB = new DataBaseHelper(this);

//populate an ArrayList<String> from the database and then view it
ArrayList<String> theList = new ArrayList<>();
Cursor data = myDB.getListContents();
if(data.getCount() == 0){
Toast.makeText(this, "There are no contents in this list!",Toast.LENGTH_LONG).show();
}else{
while(data.moveToNext()){
theList.add(data.getString(1));
ListAdapter listAdapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,theList);
listView.setAdapter(listAdapter);
}
}
}

public void AddData(String newEntry) {

boolean insertData = myDB.addData(newEntry);

if(insertData==true){
Toast.makeText(this, "Сохранено!", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(this, "Запись не должна быть пустой", Toast.LENGTH_SHORT).show();
}

showData();
}

public void addTeacher(View view) {
String newEntry = editText.getText().toString();
if(editText.length()!= 0 && !editText.equals(" ")){
AddData(newEntry);
editText.setText("");
} else {
Toast.makeText(TeacherList.this, "Не удалось добавить запись", Toast.LENGTH_LONG).show();
}
}
}

При нажатии кнопки вызывается addTeacher метод и добавляет запись в базу данных. Пожалуйста, помогите реализовать удаление из базы элемента ListView при нажатии на него. Заранее большое спасибо!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2018, 12:45
Ответы с готовыми решениями:

Как изменить цвет пункта ListView при нажатии на него и сохранять его цвет при проматывании списка?
Здравствуйте, подскажите, пожалуйста, как изменить цвет пункта ListView при...

ListView: сбивается содержимое ImageView элемента при скроллинге + как сделать выделение пункта списка при нажатии?
1. Есть свой класс ContactsSimpleCursorAdapter, в методе public void...

Не прокручивать ListView при добавлении в него данных
Добрый день! Подскажите пожалуйста. Делаю программу. В ней есть функционал...

Открыть активити при нажатии на элемент Listview
Здравствуйте, в андроид-программирование не давно, подскажите пожалуйста как,...

Как при нажатии на пункт ListView перейти на другую форму
Здравствуйте! У меня возникла проблема при работе с ListView. Суть проблему...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2018, 12:45

Изменил фон для Custom ListView не работает подсветка при нажатии
Для каждого четного Custom ListView устанавливаю цвет фона : if ((position %...

При нажатии на элемент ListView вывести новое Activity с информацией об этом элементе
Здравствуйте! Помогите пожалуйста! В общем есть список ListView с названиями...

Сохранение position элемента ListView при поиске
Если можно подробно описать и показать пример кода не посредственно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru