У меня есть класс Java, который добавляет данные в моей БД SQLite следующим образом:Вызов конкретного метода onClickListener
public class DataProvider {
public static List<DataItem> dataItemList;
public static Map<String, DataItem> dataItemMap;
static {
dataItemList = new ArrayList<>();
dataItemMap = new HashMap<>();
addItem(new DataItem(null, "Row 1", "Description 1", 3107));
addItem(new DataItem(null, "Row 2", "Description 2", 2519));
}
public static void addItem(DataItem item) {
dataItemList.add(item);
dataItemMap.put(item.getAccountId(), item);
}
}
Где DataItem
модель класса, который обрабатывает информацию данных.
Затем я создал новый вид деятельности, с помощью кнопки, которая будет использовать addItem
из этого класса:
Button addButton = (Button) findViewById(R.id.button_add);
addButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
addItem(new DataItem(null, "Row 3", "Description 3", 3307));
finish();
}
});
Попытка
- Я попытался статически импортировать
addItem
из моегоDataProvider
класса, но это не работал. Я создал новый метод в действии с помощью кнопки, которая будет использоваться для
addItem
, но все равно не повезло.private void addItem(DataItem item) { List<DataItem> dataItemList; Map<String, DataItem> dataItemMap; dataItemList = new ArrayList<>(); dataItemMap = new HashMap<>(); dataItemList.add(item); dataItemMap.put(item.getAccountId(), item); }
Вопрос
Как еще я в состоянии импортировать addItem
, чтобы иметь возможность использовать его в onClick
методе внутри моей второй активности?
Я пробовал оба из них и ни один из них не добавляет данные в базу данных. У меня есть как DataProvider, так и DataItem, импортированные в текущую активность. Ранее я также импортировал DataProvider.addItem, когда я сам вызывал 'addItem'. – Leb