我有一个充当下拉菜单的微调器。当我按下微调器时,它应该显示两个图像。它显示两个图像,但不是正确的图像。它在下拉菜单上方显示两个按钮。
我尝试移动下拉菜单的位置,看看放置是否是问题所在。我尝试过移动初始化代码。我尝试将微调器放入 onClick() 方法中。
// Drop down menu
int[] sights = {R.drawable.reticle,R.drawable.reticle2};
@Override
public void onViewCreated(final View view, Bundle savedInstanceState) {
mTextureView = view.findViewById(R.id.texture);
mButtonVideo = view.findViewById(R.id.video);
mButtonVideo.setOnClickListener(this);
Spinner spin = view.findViewById(R.id.dropdownmenu);
CustomAdapter customAdapter=new CustomAdapter(getActivity().getApplicationContext(),sights);
spin.setAdapter(customAdapter);
}
CustomAdapter.java
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
public class CustomAdapter extends BaseAdapter {
private Context context;
private int[] sights;
private LayoutInflater inflater;
public CustomAdapter(Context applicationContext, int[] sights) {
this.context = applicationContext;
this.sights = sights;
inflater = (LayoutInflater.from(applicationContext));
}
@Override
public int getCount() {
return sights.length;
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
if (view == null) {
view = inflater.inflate(R.layout.fragment_camera2_video,(ViewGroup) null);
}
ImageView icon = view.findViewById(R.id.imageView1);
icon.setImageResource(sights[i]);
return view;
}
Layout.xml
<RelativeLayout
<Spinner
android:id="@+id/dropdownmenu"
android:layout_width="51dp"
android:layout_height="44dp"
android:layout_below="@+id/video"
android:layout_alignStart="@+id/texture"
android:layout_alignEnd="@+id/video"
android:layout_marginStart="0dp"
android:layout_marginTop="0dp"
android:layout_marginEnd="0dp"
android:spinnerMode="dropdown"
android:dropDownVerticalOffset="-15dp"/>
我需要在下拉菜单上显示两个图像,单击它们时,会更改屏幕上其他位置的 imageView。下拉菜单显示其他按钮,这些按钮在下拉菜单中没有功能,但它们确实具有其他单独的功能。
最佳答案
您需要初始化数组。
int[] sights=new int[]{1,2,3};
关于java - 微调器显示错误图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56650186/