我是Android开发和Java的新手,我正在尝试根据网络上的教程做一个应用程序。无法找到任何我需要的东西对我有用。我有一个简单的微调器有5个选项,我想在单击一个选项打开一个新活动时。这就是我到目前为止所发生的事情,当我进入游戏选项卡以便从旋转器中选择我想要的内容时,它会直接进入第一种情况(GamesAnimals)。我想象它一定是简单的东西,但直到现在我都找不到它。
提前感谢您的支持。
以下是代码:
package com.gadgetcatch.firstwords;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class Games extends Fragment {
Intent i;
Spinner gamesCategory;
String [] shapes = {
"",
"ANIMALS",
"BODY",
"CLOTHES",
"FOOD",
"TRANSPORT",
};
private static final String ARG_SECTION_NUMBER = "section_number";
public static Games newInstance(int sectionNumber) {
Games fragment = new Games();
Bundle args = new Bundle();
args.putInt(ARG_SECTION_NUMBER, sectionNumber);
fragment.setArguments(args);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v =inflater.inflate(R.layout.games,container,false);
gamesCategory = (Spinner)v.findViewById(R.id.spinner);
ArrayAdapter <String> nameArrayAd = new ArrayAdapter <>(getActivity(), android.R.layout.simple_spinner_dropdown_item, shapes);
gamesCategory.setAdapter(nameArrayAd);
gamesCategory.setOnItemSelectedListener(
new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
int position = gamesCategory.getSelectedItemPosition();
if (position > 0) ;
switch (position) {
case 0:
i = new Intent(getActivity(), GamesAnimals.class);
break;
case 1:
i = new Intent(getActivity(), GamesBody.class);
break;
case 2:
i = new Intent(getActivity(), GamesClothes.class);
break;
case 3:
i = new Intent(getActivity(), GamesFood.class);
break;
case 4:
i = new Intent(getActivity(), GamesTransport.class);
break;
}
startActivity(i);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
}
);
return v;
}
}
答案 0 :(得分:1)
实际上,当您设置'invoice_no'
时,会触发spinner Adaper
位置spinner
的默认选择,这就是您0
活动正在启动的原因。您可以做的是区分初始化模式和选择模式。在构建UI时,将GameAnimals
的布尔值设置为initialization
,然后在true
中将其设置为false。这项工作的一部分将解决您的问题。
希望这会有所帮助。
<强>更新强>
声明表示初始化模式的新变量
onItemselection
然后在Spinner gamesCategory;
boolean initializationMode = true;
的{{1}}中使用此变量
Spinner gamesCategory;
boolean initializationMode = true;
onSpinnerSelection