android spinner位置,在Android中的Spinner中没有选择位置0

在Android应用中,遇到一个Spinner选择器的异常行为。当从位置1或2选择后,再次选择位置0时,onItemSelected方法没有被调用,日志未打印。问题可能与逻辑错误或回调处理有关。开发者已经检查了日志并注意到在某些情况下,位置更新并未正确触发。
摘要由CSDN通过智能技术生成

我创建了一个有三个项目的微调器

日常

每周

每月一次

我在我的java文件中执行了以下操作:

navSpinner = new ArrayList();

navSpinner.add(new SpinnerNavItem(getResources().getString(R.string.dailyview)));

navSpinner.add(new SpinnerNavItem(getResources().getString(R.string.weekview)));

navSpinner.add(new SpinnerNavItem(getResources().getString(R.string.monthview)));

adapter = new TitleNavigationAdapter(getActivity().getApplicationContext(),navSpinner);

mSpinner = (Spinner) rootView.findViewById(R.id.spinner);

mSpinner.setAdapter(adapter);

mSpinner.setOnItemSelectedListener(this);

OnItemSelected方法(实现AdapterView.OnItemSelectedListener)

public void onItemSelected(AdapterView> parentView,View v,int position,long id) {

Log.e("Position","= " + position);

if (mNaviFirstHit)

{

mNaviFirstHit = false;

}

else

{

Fragment fragment = null;

switch (position) {

case 0:

Log.e("Week","= " + position);

break;

case 1:

backspace = 1;

Log.e("Week","= " + position);

break;

case 2:

backspace = 1;

Log.e("Week","= " + position);

break;

default:

break;

}

}

}

public void onNothingSelected(AdapterView> parentView) {

}

适配器:

public class TitleNavigationAdapter extends BaseAdapter

{

private TextView txtTitle;

private ArrayList spinnerNavItem;

private Context context;

private TextView txtHeading;

private SharedPreferences pref;

public TitleNavigationAdapter(Context context,ArrayList spinnerNavItem)

{

this.spinnerNavItem = spinnerNavItem;

this.context = context;

}

@Override

public int getCount()

{

return spinnerNavItem.size();

}

@Override

public Object getItem(int index)

{

return spinnerNavItem.get(index);

}

@Override

public long getItemId(int position)

{

return position;

}

@Override

public View getView(int position,View convertView,ViewGroup parent)

{

if (convertView == null)

{

LayoutInflater mInflater = (LayoutInflater)

context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);

convertView = mInflater.inflate(R.layout.list_item_title,null);

}

txtTitle = (TextView) convertView.findViewById(R.id.txtTitle);

txtTitle.setText(spinnerNavItem.get(position).getTitle());

txtTitle.setTextColor(context.getResources().getColor(R.color.orangeText));

txtTitle.setTextSize(TypedValue.COMPLEX_UNIT_SP,12);

pref = context.getSharedPreferences("MyPref",Context.MODE_PRIVATE);

String text = pref.getString("selectedItem",context.getResources().getString(R.string.transaction_main_gridview));

if (text.equalsIgnoreCase(convertView.getResources().getString(R.string.transaction_main_gridview)))

{

txtTitle.setText(convertView.getResources().getString(R.string.transaction_main_gridview_text));

}

else if (text.equalsIgnoreCase(convertView.getResources().getString(R.string.transaction_main_weekview)))

{

txtTitle.setText(convertView.getResources().getString(R.string.transaction_main_weekly_text));

}

else if (text.equalsIgnoreCase(convertView.getResources().getString(R.string.transaction_main_monthview)))

{

txtTitle.setText(convertView.getResources().getString(R.string.transaction_main_monthly_text));

}

return convertView;

}

@Override

public View getDropDownView(int position,ViewGroup parent)

{

if (convertView == null)

{

LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);

convertView = mInflater.inflate(R.layout.list_item_title,null);

}

txtTitle = (TextView) convertView.findViewById(R.id.txtTitle);

txtTitle.setPadding(20,20,20);

txtHeading = (TextView) convertView.findViewById(R.id.txtheading);

txtHeading.setVisibility(View.GONE);

txtTitle.setText(spinnerNavItem.get(position).getTitle());

return convertView;

}

}

当我选择位置1或2(我正确地记录日志)然后从位置1或2,如果我选择位置0日志没有打印,上述代码工作正常.位置不被调用.即使位置记录没有被打印.

这真的很奇怪,我不知道为什么会发生这种情况?有人可以帮我吗?

谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值