Android 微调器setOnItemSelectedListener在片段中

Android 微调器setOnItemSelectedListener在片段中,android,android-fragments,spinner,Android,Android Fragments,Spinner,我想在片段中使用微调器,但它在侦听器上给了我一个错误。我知道这里有一些类似的问题,但我无法用其中任何一个来理解我的问题是什么。有什么问题?以下是我的onCreateView: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.maps, contain

我想在片段中使用微调器,但它在侦听器上给了我一个错误。我知道这里有一些类似的问题,但我无法用其中任何一个来理解我的问题是什么。有什么问题?以下是我的onCreateView:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.maps, container, false);

    // Gets the MapView from the XML layout and creates it
    mapView = (MapView) v.findViewById(R.id.mapview);
    mapView.onCreate(savedInstanceState);
    mapView.onResume();

    // Gets to GoogleMap from the MapView and does initialization stuff
    mapView.getMapAsync(this)   

    // get Spinner reference
    Spinner spinner = (Spinner) v.findViewById(R.id.spinner);

    // Spinner click listener
    spinner.setOnItemSelectedListener(this);                  **<======ERROR======**

    // Spinner Drop down elements
    List<String> buses = new ArrayList<>();
    buses.add("Összes megálló - válassz egy járatot");
    buses.add("26");
    buses.add("35");
    buses.add("37");
    buses.add("42");

    // Creating array adapter for spinner
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_spinner_item, buses);

    // Drop down style will be listview with radio button
    dataAdapter.setDropDownViewResource(android.R.layout.select_dialog_singlechoice);

    // attaching data adapter to spinner
    spinner.setAdapter(dataAdapter);

    return v;
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
    caseno = parent.getSelectedItemPosition();
    switch(caseno) {
        case 0: {

            //some code

            break;
        }
        case 1: {
                //some code

            break;
        }

    }
}

public void onNothingSelected(AdapterView<?> arg0) {
    Toast.makeText(getActivity(), "Nincs kiválasztott járat", Toast.LENGTH_LONG).show();
}

您需要在MSelectedListener上实现微调器:

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override   
    public void onItemSelected(AdapterView<?> parent, View view, int pos,long id) 
    {
        //Called when item is selected, use position of item to find it from list of items
    }

    @Override
    public void onNothingSelected(AdapterView<?> arg0)
    {
        //Called when no item is selected
    }
});
spinner.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共位置(AdapterView父项、视图、整数位置、长id)
{
//选择项时调用,使用项的位置从项列表中查找它
}
@凌驾
未选择公共无效(AdapterView arg0)
{
//未选择任何项目时调用
}
});

在片段中,您需要实现此接口
AdapterView.OnItemClickListener
或者您可以尝试使用此选项

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view,
                    int position, long id) {
                Object item = adapterView.getItemAtPosition(position);
                if (item != null) {
                    Toast.makeText(getContext(), item.toString(),
                            Toast.LENGTH_SHORT).show();
                }
                Toast.makeText(getContext(), "Selected",
                        Toast.LENGTH_SHORT).show();

            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {
                // TODO Auto-generated method stub

            }
        });
spinner.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView AdapterView、View、,
内部位置,长id){
对象项=adapterView.getItemAtPosition(位置);
如果(项!=null){
Toast.makeText(getContext(),item.toString(),
吐司。长度(短)。show();
}
Toast.makeText(getContext(),“已选定”,
吐司。长度(短)。show();
}
@凌驾
未选择公共无效(AdapterView AdapterView){
//TODO自动生成的方法存根
}
});

在片段中使用微调器


奖金:定制您的微调器风格

 private Spinner SortBySpinner;
 private SpinnerAdapter SortBy_adapterz;
 public static final String[] SortAdapterz = {"",

        " newest "," top brains "," most seen ",""
};
XML


如何确定值

  oSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            cck =  parent.getItemAtPosition(position).toString();

             System.out.println("Value was --->" + cck );

        }
        @Override
        public void onNothingSelected(AdapterView<?> parent) {
        }
    });
oSpinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
cck=parent.getItemAtPosition(position.toString();
System.out.println(“值为-->”+cck);
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
结果


我将它们放在oncreateview之外,并尝试将其放在其中,但这也不起作用。我不确定是否可以将它们放在oncreateview之外,或许可以扩展相应的类。请尝试在onCreateView()中实现,因此我在您的示例中尝试了它,但它仍然在同一行中崩溃。还可以发布错误日志吗?如果我将类放在oncreateview中,它将不起作用。我已经在com.koostamas.justtry.Map.onCreateView(Map.java:151)上实现了.java.lang.NullPointerException。检查151行它是nulpointer异常来自151行它不是微调器isssu告诉我哪行是151这是我标记的行:spinner.setonimselectedListener(这个);微调器微调器=(微调器)v.findViewById(R.id.Spinner);为空检查视图v=充气机充气(R.layout.maps,容器,假);此视图没有任何微调器。请参见R.layout.maps此布局它包含id为R.id的任何微调器视图。spinnerI找到了它。我在版面名称上打错了字。谢谢你的时间。你能发布错误日志吗?
 private Spinner SortBySpinner;
 private SpinnerAdapter SortBy_adapterz;
 public static final String[] SortAdapterz = {"",

        " newest "," top brains "," most seen ",""
};
               <Spinner
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:id="@+id/TimeSpinner"/>
        oSpinner = (Spinner) v.findViewById(R.id.TimeSpinner);
        oAdapter = new ArrayAdapter<String>(getActivity(),R.layout.cutomized_spinner, SortAdapterz);
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="15sp"
android:layout_weight="1"
android:gravity="center"
android:text=" egypt "
android:fontFamily="sans-serif-smallcaps"
android:textColor="#464646"
android:textColorHint="#ffcc00"
android:padding="5dip"
android:layout_centerInParent="true"
/>
            oSpinner.setAdapter(oAdapter);
  oSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            cck =  parent.getItemAtPosition(position).toString();

             System.out.println("Value was --->" + cck );

        }
        @Override
        public void onNothingSelected(AdapterView<?> parent) {
        }
    });