2014-09-30 100 views
2

在我的應用程序,我有一個微調3值。Android微調onNothingSelected

如果按第一個它應該去的活動:UploadPicture

如果按第二個它應該去的活動:ChangePassword

如果按最後一次它應該去活動:登錄

但由於微調器在啓動時具有第一個值,因此如果您選擇第一個,似乎無法觸發onItemSelected。 (我不想要第四個值:「請選擇一個」)。所以我的問題是我如何觸發onNothingSelected?因爲當我選擇第一個值時,它不會觸發onItemSelected。

我的代碼:

@Override 
     public void onItemSelected(AdapterView<?> parent, View view, 
       int pos, long id) { 
      System.out.println(pos + " " + first); 
      if (!first && pos == 0) { 

      goUpload(); 
      } else if (!first && pos == 1) { 
       goInternReportActivity(); 
       //spinner.setSelection(0); 

      } else if (!first && pos == 2) { 
       goTeksterActivity(); 
       //spinner.setSelection(0); 
      } 
      first = false; 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 
      // TODO Auto-generated method stub 

      goUpload(); 
     } 
+0

add --select--標籤作爲默認值設置在微調和驗證微調無爲獲取選擇 – 2014-09-30 11:13:38

+0

我不明白你的意思? :( – 2014-09-30 11:21:02

回答

1

我找到了一個解決方法,在這裏我把第四個元素放在String數組中。

像這樣:

public View getCustomView(int position, View convertView, 
      ViewGroup parent) { 

     LayoutInflater inflater = getLayoutInflater(); 
     View mySpinner = inflater.inflate(R.layout.custom_spinner, parent, 
       false); 
     TextView main_text = (TextView) mySpinner 
       .findViewById(R.id.text_main_seen); 
     imageViewLeft = (ImageView) mySpinner.findViewById(R.id.left_pic); 
     main_text.setText(spinnerValues[position]); 
     if (numberOfElement >= 1) { 
      imageViewLeft.setVisibility(View.GONE); 
     } 
     if (main_text.getText().equals("")){ 
      main_text.setVisibility(View.GONE); 
     } 
     System.out.println(numberOfElement + " " + main_text.getText() + " HEJ"); 
     numberOfElement++; 
     return mySpinner; 
    } 

但我使其不可見,所以當微調打開時它不會顯示。所以第一個元素是空的,並且包含一個當微調器關閉而不打開時顯示的圖像。

0

隨着微調總是選擇第一項活動時造成的。在這裏,您需要設置首次啓動活動的標誌。嘗試該代碼。

​​

onNothingSelected並不是你想要的正確方法。

1

我曾經有過同樣的問題,並希望使用onNothingSelected回調。

我發現我們不能一起使用onNothingSelectedonItemSelected,如果索引爲0的項目也有類似你的方法。

作爲每documentation微調onItemSelected回調調用僅當:

  1. 新選擇的位置不同於先前選定的位置

  2. 如果沒有選中的項目

因此,即使您沒有碰到您的微調器,索引0項也總是被選中。 即使這不是你想要做的:A fourth value "Select Action"在索引0是解決你的問題的最佳解決方案。