У меня есть база данных SQLite, в которой к каждой строке с информацией, у которой свой _id, прикреплена картинка. В базе данных на данный момент есть столбец полного имени этих картинок. Таких строк несколько. Эта информация и картинка выводится на экран при нажатии на один из элементов ListView, сами картинки хранятся в папке drawable. У меня в приложении они выводятся все однотипно, поэтому был создан один фрагмент, в котором мы заполняем все данные для отображения их на экране пользователя. С выводом текста я разобрался.
Вопрос: как мне, имея имя картинки (или что-то другое, что вы подскажите, изменить не проблема) в базе данных, получить на экране эту картинку? Вывод информации зависит от того, на какой элемент ListView пользователь нажал, поэтому .setImageResource(R.drawable./название\) тут нельзя воспользоваться: нужно сделать так, чтобы на экране показывалась именно та, которая соответствует _id (он же элемент клика по ListView) из БД.
Код фрагмента:
public class HistoryFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
Bundle bundle = getArguments();
String id = bundle.getString("id"); // получаем id, на который пользователь нажал
DataBaseHelper dataBaseHelper = new DataBaseHelper(getActivity());
HashMap<String,String> information = dataBaseHelper.getDescription(id); // получаем информацию из БД
FrameLayout frameLayout = (FrameLayout)inflater.inflate(R.layout.fragment_historyfragment, container, false);
TextView MainTitleView = frameLayout.findViewById(R.id.maintitle);
MainTitleView.setText(information.get("title")); // Задаём заголовок
TextView DescriptionOneView = frameLayout.findViewById(R.id.descriptionone);
DescriptionOneView.setText(information.get("descriptionOne")); // Задаём первое описание
ImageView pictureOneView = frameLayout.findViewById(R.id.pictureone); // Задаём первую картинку????
TextView DescriptionTwoView = frameLayout.findViewById(R.id.descriptiontwo);
DescriptionTwoView.setText(information.get("descriptionTwo")); // Задаём второе описание
ImageView pictureTwoView = frameLayout.findViewById(R.id.picturetwo); // Задаём вторую картинку?????
return frameLayout;
}
}
Разметка этого фрагмента, которая выводится на экран при нажатии:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".HistoryFragment">
<!-- TODO: Update blank fragment layout -->
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/maintitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="5dp"
android:textAlignment="center"
android:textAllCaps="true"
android:textSize="25sp"
android:textStyle="bold" />
<TextView
android:id="@+id/descriptionone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:textAlignment="textStart"
android:textSize="15sp" />
<ImageView
android:id="@+id/pictureone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:padding="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
/>
<TextView
android:id="@+id/descriptiontwo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textSize="15sp"/>
<ImageView
android:id="@+id/picturetwo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:padding="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
/>
</LinearLayout>
</ScrollView>
</FrameLayout>