簡體   English   中英

Android Studio-Spinner-獲取Spinner項不起作用

[英]Android Studio - Spinner - get Spinner item does not work

我嘗試了幾個小時才能從Spinner-Object中獲得該項目,但我總是從Spinner Array中獲得第一項。 該數組在string.xml中定義。 這個錯誤是由不同的情況引起的嗎? 當我僅使用getSelectedItem命令時,會得到一個NullPointer參考

 String taskName;
 String taskTag;
 Spinner spinner;
 ArrayAdapter<CharSequence> adapter;


 public void newTaskName() {

    final AlertDialog.Builder taskBuilder = new AlertDialog.Builder( MainActivity.this );
    final View bView = getLayoutInflater().inflate( R.layout.dialog_taskname, null );
    final EditText bTaskName = (EditText) bView.findViewById( R.id.taskNameEditText );
    Button buttonAdd = (Button) bView.findViewById( R.id.buttonAdd );
    Button buttonBack = (Button) bView.findViewById( R.id.buttonBack );


    taskBuilder.setView( bView );
    final AlertDialog dialog = taskBuilder.create();
    dialog.show();

    buttonAdd.setOnClickListener( new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!bTaskName.getText().toString().isEmpty()) {

                taskName = bTaskName.getText().toString();
                taskTag = (String) spinner.getSelectedItem();
                dialog.dismiss();
                System.out.println("Das ist der Tag: "+ taskTag);
                newTask( taskName, taskTag );

            } else {
              (...)

 @Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate( savedInstanceState );
    setContentView( R.layout.dialog_taskname );

    spinner = (Spinner) findViewById( R.id.spinner_WT );
    adapter = ArrayAdapter.createFromResource( this, R.array.array_wochentage, android.R.layout.simple_spinner_item );
    adapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item );
    spinner.setAdapter( adapter );

    spinner.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            Object item = spinner.getItemAtPosition(position);

        }

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



            setContentView( R.layout.activity_main );
                    (...)

代替此行:

Object item = spinner.getItemAtPosition(position);

嘗試使用這個:

Object item = parent.getItemAtPosition(position)

另外,您是否在代碼中添加了以下幾行?

 Spinner spinner = (Spinner) findViewById(R.id.spinner);
 spinner.setOnItemSelectedListener(this);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM