2013-03-28 144 views
1

我有一個問題,我的微調。當按下按鈕時,我會通過編輯文本在旋轉工具上添加項目。當按下微調器時,項目會正確顯示,但不能進行選擇,並且微調器上沒有顯示。Android - 微調不能選擇項目

下面的代碼:

final ArrayList<String> players = new ArrayList<String>(); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, android.R.layout.simple_spinner_dropdown_item, players); 
    final Spinner spinnerplayers = (Spinner)findViewById(R.id.spinnerplayers); 

    final ImageButton addbutton = (ImageButton)findViewById(R.id.addbutton); 
    final EditText editname = (EditText)findViewById(R.id.editname); 
    final EditText editnum = (EditText)findViewById(R.id.editnum); 
    addbutton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View arg0) { 
      players.add(editname.getText().toString()+ " " + editnum.getText().toString()); 
      editname.setText(""); 
      editnum.setText(""); 
     } 
    }); 

    spinnerplayers.setAdapter(adapter); 

    final ImageButton removebutton = (ImageButton)findViewById(R.id.removebutton); 
    removebutton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View arg0) { 
      //players.remove(spinnerplayers.getSelectedItem().toString()); 
     } 
    }); 

如果它的需要,微調XML是:

<Spinner 
     android:id="@+id/spinnerplayers" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_weight="1" /> 

在哪裏的問題任何想法?

在此先感謝。

+1

做你設法解決這個問題的方法是什麼?我現在面臨着同樣的問題.. – xuanweng

回答

0

如果您的意思是您的按鈕上的clicklisten無法正常工作,您必須爲此製作一個自定義適配器。您將在適配器的getView方法中應用偵聽器。

添加您必須添加OnItemSelectedListener。

YOUR_SPINNER.setOnItemSelectedListener(new OnItemSelectedListener() { 

       @Override 
       public void onItemSelected(AdapterView<?> arg0, View arg1, 
         int position, long arg3) { 
          } 

       @Override 
       public void onNothingSelected(AdapterView<?> arg0) { 

       } 

      }); 

該位置爲您提供您的項目。

+0

我按鈕上的偵聽器工作正常,它在微調器上添加文本並重置edittext。問題是無法在微調器上進行選擇,因此沒有顯示。 – user1897262

+0

更新了我的答案。 – Hasham

+0

而順便說一句我不會使用微調這個任務我會使用對話框。 – Hasham

0

你試過指定:

adapter.setNotifyOnChange(true); 

刷新適配器顯示每個添加/刪除你做什麼呢?

+0

我剛剛嘗試過,行爲沒有任何變化。無論如何,謝謝 – user1897262

0

原因是你用android.R.layout.simple_spinner_item設置它。

您可以編寫自己的適配器類:

Spinner spinner = (Spinner) findViewById(R.id.mySpinner); 
spinner.setAdapter(new MyCustomAdapter(CLASS.this, R.layout.spinner_layout, players)); 

那麼它看起來就像你在spinner_layout設計

+0

我的想法是使用android.R.layout.simple_spinner_dropdown_item,並且外觀沒問題,問題在於它不能正常工作,因爲它(或我)的預期。它在字段右側顯示de單選按鈕,但按下時沒有進行選擇,單選按鈕不會變成綠色,並且所選項目文本不會顯示在微調器上。這與我從其他紡紗工人看到的情況不同,這些紡紗工人正常工作。 – user1897262