0

最初のスピナーがタスクを完了したときに必要な同じフラグメントで 2 つのスピナーを使用し、setOnItemSelectedListener だけが 2 番目のスピナーを呼び出します。

問題:しかし、問題は setOnItemSelectedListener が両方のスピナーに対して同時に呼び出されることです。どうすればそれを管理できますか。:(

やりたいこと:ページの読み込みでグラフを描きたい スピナー 1 は別のグラフを描画し、スピナー 2 は別のグラフ ページの読み込みを描画します。

どんな助けでも感謝されます。

4

2 に答える 2

0
spinnerLeft = (Spinner) getActivity().findViewById(R.id.spinner_left);
    dataAdapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_spinner_item, arrayList);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinnerLeft.setAdapter(dataAdapter);

spinerRight = (Spinner) getActivity().findViewById(R.id.spinner_right);
    rightSpinnerAdapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_spinner_item, arrayList);
    rightSpinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinerRight.setAdapter(rightSpinnerAdapter);

これは、onActivityCreated で呼び出した 2 つのスピナーです。

spinerRight.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> parent, View view,
                int position, long arg3) { 
// here I called a method to download a chart and showing below 1st spinner

AppGlobals.getInstance().checkSpinner = 1; }

private void addListenerOnSpinnerLeftItemSelection() {
    spinnerLeft.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> parent, View view,
                int position, long arg3) {
 //here I m called the same method to download and show chart below 2nd spinner 

AppGlobals.getInstance().checkSpinner = 1; }

しかし、最初のスピナー機能が完了する前に、2 番目のスピナーが呼び出されました。私は int 値しか持っていないので、両方のスピナーが int 値を呼び出したときに違いがわかります。

if (AppGlobals.getInstance().checkSpinner == 1) {
        chartArea = (LinearLayout) getActivity().findViewById(R.id.chart);
    } else if (AppGlobals.getInstance().checkSpinner == 0) {
        chartArea = (LinearLayout) getActivity().findViewById(R.id.pie_chart);
    }
于 2013-11-13T11:48:59.110 に答える