Android 微调器setOnItemSelectedListener在片段中
我想在片段中使用微调器,但它在侦听器上给了我一个错误。我知道这里有一些类似的问题,但我无法用其中任何一个来理解我的问题是什么。有什么问题?以下是我的onCreateView: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
@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) {
}
});