Как передать растровое изображение в качестве аргумента, используя безопасные аргументы

Я хочу передать Bitmap в качестве аргумента другому фрагменту, используя безопасные аргументы. каков правильный argType для передачи растрового изображения.

<fragment
        android:id="@+id/nextFragment"
        android:name="com.example.----.NextFragment"
        android:label="fragment_next"
        tools:layout="@layout/fragment_next" >
        <argument
            android:name="image"
            app:argType="???"
            android:defaultValue="???" />
</fragment>



Ответы (1)


вы можете добавить argType как android.graphics.Bitmap

из исходного кода NavType.java

Class clazz = Class.forName(className);
                if (Parcelable.class.isAssignableFrom(clazz)) {
                    return new ParcelableType(clazz);
                } else if (Enum.class.isAssignableFrom(clazz)) {
                    return new EnumType(clazz);
                } else if (Serializable.class.isAssignableFrom(clazz)) {
                    return new SerializableType(clazz);
                }

А Bitmap реализует parcelable, поэтому он будет работать.

Вы можете удалить defaultValue

person user6327816    schedule 31.10.2019
comment
спасибо, но есть проблема, я хочу, чтобы растровое изображение было нулевым, и это не позволяет мне это сделать, Ошибка: Null can not be a value of a non-null type Bitmap, как это исправить? .. Я использую kotlin - person Askani; 01.11.2019
comment
@Askani Добавление app:nullable="true" в определение аргумента должно помочь. - person JerabekJakub; 08.07.2020