Последний класс, который необходимо добавить. Добавьте новый класс с названием DetailFragment:
public class DetailFragment extends Fragment {
// В файле макета разместили два TextView один для заголовка, второй для показа содежимого, для них соответственно необходимо объявить перменные для управления ими через код
TextView title;
TextView content;
// Пременная для доступа к функциям работы с базой данных
Database db;
// Функция вызываемая при показе фрагмента внутри Activity
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
// Привязать файл макета detail_fragment.xml к этому фрагменту
View v = inflater.inflate(R.layout.detail_fragment, container, false);
// Инициализация переменной класса Database для работы с базой данных
db = new Database(getContext());
// Получить ссылку на TextView для заголовка и контента
title = v.findViewById(R.id.title);
content = v.findViewById(R.id.content);
// Получить переданные аргументы по соответствующим ключам
int id = getArguments().getInt("id");
// Объявить экземпляр класса DBItem и присвоить значение полученное посредством запроса по уникальному id из базы данных
DBItem item = db.getItemById(id);
// Присвоеить значение заголовка виджету TextView
title.setText(item.title);
// Присвоить текст к TextView контента. При использовании Html.fromHtml(String) можно текст TextView форматировать по необходимости Html тегами, например для вывода жирного текста в строке надо написать <b>Жирный текст</b>, также можно использовать теги u,i и другие используемые для форматирования текста в html. Например ещё тег <br/> устанавливает перевод строки
content.setText(Html.fromHtml(item.content));
// Вернуть View для показа внутри Activity
return v;
}
}
Все необходимые классы и ресурсы добавлены, теперь необходимо изменить файл MainActivity.java следующим образом:
public class MainActivity extends AppCompatActivity implements AddItemsDialog.IRefreshList {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Проверить на существование присвоенного значения переменной savedInstanceState, если значение равно null значит Activity только что запустился и можно добавить фрагмент, если не писать эту проверку, каждый раз при восстановлении состояния Activity, например в случае поворота экрана может возникнуть подобная ситуация, фрагмент будет добавляться в Activity
if (savedInstanceState == null) {
// Получить экземпляр менеджера фрагментов
getSupportFragmentManager()
// Начать транзакцию фрагментов
.beginTransaction()
// Добавить в LinearLayout с id = fragmentContainer содержимое фрагмента MasterFragment
.add(R.id.fragmentContainer, new MasterFragment())
// Установить анимацию для показа фрагмента
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
// Завершить транзакцию и показать фрагмент
.commit();
}
}
// Обновить список при добавлении новой записи
@Override
public void RefreshList() {
MasterFragment master = (MasterFragment) getSupportFragmentManager().findFragmentById(R.id.fragmentContainer);
if (master != null)
master.setAdapterToList();
}
}
Реклама