java - 微调器显示错误图像

标签 java android spinner

我有一个充当下拉菜单的微调器。当我按下微调器时,它应该显示两个图像。它显示两个图像,但不是正确的图像。它在下拉菜单上方显示两个按钮。

我尝试移动下拉菜单的位置,看看放置是否是问题所在。我尝试过移动初始化代码。我尝试将微调器放入 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/

相关文章:

Android - 从 Spinner 项目填充 TextView

java - Android MediaRecorder JNI(Delphi)的问题

java 空闲内存使用情况

java - 如何在同一 Activity 中同步运行 Espresso 测试套件测试类?

angularjs - Angular/ ionic : How to show my spinner while components are loading

android - 如何更改 Android 微调器弹出窗口中所有项目的文本颜色?

java - Android中如何监听GC事件

java - 如何访问 OSGi/Bndtools 中仅由反射引用的包?

机器人 : How to work around the fact that a singleInstance activity cannot expect to rely onActivityResult when starting subActivity?

java - 我们是否需要在android上的生产环境中删除“Timber”和“Log”调用?