返回活动不会将图片加载到imageview

时间:2017-04-17 23:17:53

标签: android android-layout dialog imageview android-vectordrawable

我有三个EditText的活动。点击EditText中的任何一个都显示相同类型的对话,基本上是一个项目列表。

在这个对话框中,我有一个ImageView,它在我的drawable文件夹中显示了一个+图标,它是一个矢量可绘制文件。

当我第一次运行活动时,图像会显示出来。但是,当我转到下一个活动并按回EditText返回活动时,当我点击EditText时,对话框会显示,但没有加号图标。但是,当我点击图像所在的部分时,它正在响应它应该的方式。

MyActivity.java

private final View.OnClickListener editTextOnClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            showPickerDialogue(some_parameters)
        }

    private void showPickerDialogue(some_parameters){
            PickerDialogue cityPickerDialogue = new PickerDialogue();
            cityPickerDialogue.setAruguments(parameter_in_bundle);
            cityPickerDialogue.show(getSupportFragmentManager(), fragment_tag);
        }
}

PickerDialogue.java

public class PickerDialogue extends DialogFragment {

         @Override
         public Dialog onCreateDialog(Bundle savedInstanceState) {
             super.onCreateDialog(savedInstanceState);
             AlertDialog.Builder dialogueBuilder = new AlertDialog.Builder(getContext());

             View dialogueView = getActivity().getLayoutInflater()
                 .inflate(R.layout.dialogue_picker, null);
             dialogueBuilder.setView(dialogueView);
             .
             .
             .
             ImageView imageViewAdd = (ImageView) dialogueView.findViewById(R.id.dialogue_picker_button_add);
             .
             .
             .
             imageViewAdd.setOnClickListener(addNewSchoolListener);
             return dialogueBuilder.create();
         }
}

dialogue_picker.xml

LinearLayout 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"
              android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="@dimen/dialogue_margin_bottom"
        android:layout_marginLeft="@dimen/dialogue_margin_left"
        android:layout_marginRight="@dimen/dialogue_margin_right"
        android:layout_marginTop="@dimen/dialogue_margin_top"
        android:orientation="horizontal"
        tools:ignore="RtlHardcoded">

        <TextView
            android:id="@+id/dialogue_picker_title"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="4"
            android:gravity="center_vertical"
            android:textAppearance="@android:style/TextAppearance.Material.DialogWindowTitle"
            tools:text="Select city"/>

        <ImageView
            android:id="@+id/dialogue_picker_button_add"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:contentDescription="@string/add"
            android:src="@drawable/ic_add"/>

    </LinearLayout>

    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="@android:color/darker_gray"/>

    <include
        layout="@layout/dialogue_with_search"/>


</LinearLayout>

ic_add.xml(这与Android Studio附带的ic_add图标相同。)

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0">
    <path
        android:fillColor="#FF000000"
        android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
</vector>

此外,对话基本上是使用ListView的项目列表。因此,当单击列表中的项目时,该项目将传递给Activity。然后,它将项目设置为EditText

listViewItems.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
                callback.onDialogueItemClick(
                        (String) adapterView.getItemAtPosition(position),
                        editTextId);
                dismiss();
            }
        });

为什么您认为只有在按下并返回活动时图像才会显示?

我尝试过的事情

  • 使用开发人员选项中的显示布局边界进行检查。它表明ImageView确实存在,但图像没有加载
  • 尝试从Java代码而不是XML加载图像视图。
  • 将LinearLayout更改为RelativeLayout。
  • 我用另一个矢量资产更改了实际图标。我从New-&gt; Vector Asset - &gt;导入了它。材料图标。这次我使用了后箭头矢量资产,它工作正常。所以我导入了一个新的+矢量资产并尝试但仍然没有用。我不知道为什么只有+符号不起作用。
  • 在Android 5.1上运行的小米Redmi 2S Prime上的代码运行正常我面临这个问题的设备是在Android 6.0上运行的小米Redmi 3S Prime

0 个答案:

没有答案