2016-02-13 65 views
0

在我的整個一天,我曾在這個問題上。微調爲setSelection禁用我的按鈕的onclick方法

我有一個微調和可擴展列表視圖。我的子視圖首先有兩個按鈕。一個是「接受」,另一個是「拒絕」。我的微調有4個選擇。首先是「等待請求」二是「接受請求」三是「拒絕請求」四是「所有的要求」

我想看到的是「等待請求」時,我的程序首先啓動。 而當我接受或拒絕,我想我的微調動態變化。 (編輯:。我想更新我的數據集不會改變我的微調爲此,我需要刷新我的飛旋我打電話adapter.notifydatasetchanged後微調篩選我的數據我用微調根據記錄來篩選我的數據(列表視圖元素)類別)。 對於動態更改,我首先使用了setSelection(position,true)代碼。但這不行。所以我用setSelection(0,true);爲setSelection(位置,TRUE); 的原因,爲什麼我用了兩次,因爲如果它已經由同一個位置選擇微調並不時更新。所以首先我用這段代碼將我的位置設置爲0。 「setSelection(0,true)」之後,我用此代碼設置了我的實際所需位置。 「setSelection(position,true)」

有了這兩個代碼我記住我的微調是動態的但是!我屬於我的listview子項的按鈕不再處於活動狀態。我不能點擊我的按鈕。

我使用的線程來運行這兩個代碼塊,但也線程不可能解決我的問題。我開始認爲這是一個錯誤問題。所以我想問問stackoverflow。我在等待任何想法?

這是我的紡絲器的代碼:

spinner.setAdapter(spinnerAdapter); listview.setAdapter(adapter);

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, final int position, long id) { 
      if (oldposition == position) 
      { 

       if(position!=0) { 

        spinner.setSelection(0, false); 
        spinner.setSelection(position, false); 
       } 
       else 
       { 
        spinner.setSelection(1, false); 
        spinner.setSelection(position, false); 
       } 

      } 

      oldposition = position; 

      parentsFiltered.clear(); 
      if (parent.getItemAtPosition(position).equals("Tümü")) { 
       parentsFiltered.addAll(yedek); 
       parents.clear(); 
       parents.addAll(parentsFiltered); 

      } else if (parent.getItemAtPosition(position).equals("Onaylananlar")) { 
       filter(1); 

      } else if (parent.getItemAtPosition(position).equals("Reddedilenler")) { 
       filter(2); 

      } else if (parent.getItemAtPosition(position).equals("Bekleyenler")) { 
       filter(0); 

      } 
      dateFilter(); 
     } 

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

      parentsFiltered.clear(); 
      parentsFiltered.addAll(yedek); 
      parents.clear(); 
      parents.addAll(parentsFiltered); 
      adapter.notifyDataSetChanged(); 
      adapter.notifyDataSetInvalidated(); 
     } 
    }); 

在此先感謝..

+0

如果您對我的代碼有任何疑問,我已經準備好爲您解釋清楚。我不想顯示我的所有代碼,因爲我認爲它可能看起來很複雜。聽到你的想法,我有點不耐煩,因爲我真的需要。 – Hilal

回答

0

是的,我解決我的問題。我無法解決setselection問題,但是我決定從另一個方面去做。我沒有使用setselection方法。我只是在我的接受和拒絕按鈕的onclick方法中添加我的過濾器方法。這解決了這個問題。

相關問題