如何返回微调器的位置,以便可以再次选择所选的选项

时间:2014-11-21 09:51:19

标签: android spinner

请帮助大家,.. 我有dialogprogress并显示是否选择了项目微调器。 单击旋转器中的所选项后,可以再次调用对话框中的dialogprogress ..

spinopr.setOnItemSelectedListener(new OnItemSelectedListener() {

                @Override
                public void onItemSelected(AdapterView<?> parent,
                        View view, int position, long id) {
                    ConnectivityManager cm = (ConnectivityManager) getActivity()
                            .getSystemService(Context.CONNECTIVITY_SERVICE);
                    NetworkInfo ni = cm.getActiveNetworkInfo();
                    if (position != 0 && ni != null) {
                        new TransaksiPulsaAsync().execute();
                    } else if (position != 0 && ni == null) {
                        showToast("Koneksi Data tidak tersambung!");
                    }
                }

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

3 个答案:

答案 0 :(得分:0)

根据文件, Spinner的onItemSelected在选择此视图中的项目时调用的Callback方法。仅当新选择的位置与先前选择的位置不同或者没有选定的项目时,才会调用此回调。

答案 1 :(得分:0)

int spinnerpos = adapter.getPosition(spinner item);

spinner item是已选择的微调器项的值。

spinopr.setSelection(spinnerpos);

然后将调用onItemSelected。

答案 2 :(得分:0)

最后,我找到了解决方案

public class SelectAgainSpinner extends Spinner {
OnItemSelectedListener listener;
int prevPos = -1;

public SelectAgainSpinner(Context context) {
    super(context);
}

public SelectAgainSpinner(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public SelectAgainSpinner(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}

@Override
public void setSelection(int position) {
    super.setSelection(position);
    if (position == getSelectedItemPosition() && prevPos == position) {
        getOnItemSelectedListener().onItemSelected(null, null, position, 0);
    }
    prevPos = position;
}

}

然后放入xml