Android 切换片段时如何控制微调器项?
片段B有一个旋转器,它有三个项目。我想在将片段从A切换到B时显示微调器的第二项 我尝试使用singleton对象来控制它,但它不起作用 这是我的代码,任何帮助都将不胜感激 我的单例对象: 公共类SetForTabPages{Android 切换片段时如何控制微调器项?,android,android-spinner,Android,Android Spinner,片段B有一个旋转器,它有三个项目。我想在将片段从A切换到B时显示微调器的第二项 我尝试使用singleton对象来控制它,但它不起作用 这是我的代码,任何帮助都将不胜感激 我的单例对象: 公共类SetForTabPages{ int forBloodSugarSpinner; public int getForBloodSugarSpinner() { return forBloodSugarSpinner; } public void setForBloodSugarSpinner
int forBloodSugarSpinner;
public int getForBloodSugarSpinner() {
return forBloodSugarSpinner;
}
public void setForBloodSugarSpinner(int forBloodSugarSpinner) {
this.forBloodSugarSpinner = forBloodSugarSpinner;
}
public static SetForTabPages setForTabPages=null;
public static SetForTabPages getTabPosition(){
if (setForTabPages==null){
setForTabPages=new SetForTabPages();
return setForTabPages;
}else {
return setForTabPages;
}
}
}
我的片段A关于开关片段函数:
@Override
public void onClick(View view) {
int id = view.getId();
if (id == R.id.imageDetectionSugar) {
sendSpinnerNumber(1);//i save the value as 1.
((NavigationDrawerLayout)getActivity()).switchFragment(Evaluation.newInstance());
//and switch fragment to A
}
}
这是我的片段A:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (setForTabPages.getForBloodSugarSpinner() == 1) {//get the value 1.
Toast.makeText(getActivity(),"Enter here succeed",Toast.LENGTH_SHORT).show();//i enter here succeed
layoutForBloodPressure.setVisibility(View.GONE);//it's not working
layoutForBloodSugar.setVisibility(View.VISIBLE);//it's not working
layoutForBMI.setVisibility(View.GONE);//it's not working
//may be i should put the code about adapter for item,byt i do not know how
compareSpinner(view);
}
//get spinner value
evaluationEnterItem.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {
Object item = adapterView.getItemAtPosition(position);
spinnerItem = item.toString();
compareSpinner(view);
Log.d("name", spinnerItem);
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
return view;
}
//if i just click spinner to switch , it's working here
private View compareSpinner(View view) {
if (spinnerItem.equals(getResources().getString(R.string.bloodPressure))) {
layoutForBloodPressure.setVisibility(View.VISIBLE);
layoutForBloodSugar.setVisibility(View.GONE);
layoutForBMI.setVisibility(View.GONE);
return view;
} else if (spinnerItem.equals(getResources().getString(R.string.bloodSugar))) {
layoutForBloodPressure.setVisibility(View.GONE);
layoutForBloodSugar.setVisibility(View.VISIBLE);
layoutForBMI.setVisibility(View.GONE);
return view;
} else if (spinnerItem.equals(getResources().getString(R.string.bodyWeight))) {
layoutForBloodPressure.setVisibility(View.GONE);
layoutForBloodSugar.setVisibility(View.GONE);
layoutForBMI.setVisibility(View.VISIBLE);
return view;
} else {
layoutForBloodPressure.setVisibility(View.GONE);
layoutForBloodSugar.setVisibility(View.GONE);
layoutForBMI.setVisibility(View.GONE);
return view;
}
}
@覆盖
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
如果(setForTabPages.getforbloodugarspinner()==1){//获取值1。
Toast.makeText(getActivity(),“在此处输入成功”,Toast.LENGTH_SHORT.show();//我在此处输入成功
血压布局。设置可见性(View.GONE);//它不工作
LayoutForBloodugar.setVisibility(View.VISIBLE);//它不工作
layoutForBMI.setVisibility(View.GONE);//它不工作
//可能是我应该把关于适配器的代码放在项目上,byt我不知道怎么做
比较内部(视图);
}
//获取微调器值
evaluationEnterItem.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共位置(适配器视图适配器视图视图视图视图内部位置长l){
对象项=adapterView.getItemAtPosition(位置);
spinnerItem=item.toString();
比较内部(视图);
Log.d(“名称”,喷丝头项目);
}
@凌驾
未选择公共无效(AdapterView AdapterView){
}
});
返回视图;
}
//如果我只是单击微调器切换,它在这里工作
私有视图比较内部(视图){
if(spinnerItem.equals(getResources().getString(R.string.bloodPressure))){
血压布局。设置可见性(View.VISIBLE);
布局为bloodugar.setVisibility(View.GONE);
布局bmi.setVisibility(View.GONE);
返回视图;
}else if(spinnerItem.equals(getResources().getString(R.string.Bloodugar))){
血压布局。设置可见性(视图。消失);
LayoutForBloodugar.setVisibility(View.VISIBLE);
布局bmi.setVisibility(View.GONE);
返回视图;
}else if(spinnerItem.equals(getResources().getString(R.string.bodyWeight))){
血压布局。设置可见性(视图。消失);
布局为bloodugar.setVisibility(View.GONE);
布局bmi.setVisibility(View.VISIBLE);
返回视图;
}否则{
血压布局。设置可见性(视图。消失);
布局为bloodugar.setVisibility(View.GONE);
布局bmi.setVisibility(View.GONE);
返回视图;
}
}