0

別の画面から文字列を渡す画面にスピナーを設定しました。その文字列をスピナーのデフォルトとして設定したいと思います。投稿を調べて実装しようとしましたが、どういうわけか機能していません。

これが私のコードです:

//workRequestFetched is a private String object
workRequestFetched = extras.getString("workRequest");

workRequestSpinner = (Spinner) findViewById(R.id.workRequestSpinner);

//ServiceCall is a function call to the web service it works fine otherwise, please don't worry about it.

ArrayList<String> workRequests = ServiceCall.workRequests;



        ArrayAdapter<String> workRequestAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item,
                 workRequests);

選択されているのは、文字列が渡されたかどうかをチェックするブール値です。実行スレッドがif句に入るのかどうかを確認するために印刷したので、問題はないと思います。

        if(selected){
            System.out.println("Entered selected- "+workRequestFetched);
//This is what supposed to set the spinner's default to the position of the string right? but it doesn't work!

            int spinnerPosition = workRequestAdapter.getPosition(workRequestFetched);

            workRequestSpinner.setSelection(spinnerPosition);


        }

        workRequestAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);


        workRequestSpinner.setAdapter(workRequestAdapter);

誰かが間違いを指摘できますか?ありがとうございました!

4

1 に答える 1

2

スニペットを次のように変更します

ArrayAdapter <String> workRequestAdapter = new ArrayAdapter <String> (
this,android.R.layout.simple_spinner_item,workRequests);
workRequestAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
workRequestSpinner.setAdapter(workRequestAdapter);
workRequestSpinner.setSelection(workRequestAdapter.getPosition(workRequestFetched));
于 2012-06-21T14:22:05.503 に答える