我有三个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();
}
});
为什么您认为只有在按下并返回活动时图像才会显示?
我尝试过的事情