2016-03-03 52 views
1

在我的Android項目中,我有SwitchCompactonClick其中我做網絡的東西和基礎響應我想更改SwitchCompact檢查或不檢查。Android - SwitchCompact禁用/停止默認行爲

我現在面臨的問題是:
當我點擊SwitchCompact它改變其狀態(即時真亦假,反之亦然),這是正常的行爲。我想禁用它的正常/默認行爲。

這可能嗎?

class MyClass extends Fragment implements View.OnClickListener { 
    SwitchCompat switchCompact; 
    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     //my view inflating stuff 
     switchCompact= (SwitchCompat) view.findViewById(R.id.switch_id); 
     switchCompact.setOnClickListener(this); 
     return view; 
    } 


    @Override 
    public void onClick(View view) { 
     if (view.getId()==R.id.switch_id) { 
      //make http request 
     } 
    } 

    public void onResponse(Response response){ 
     switchCompact.setChecked(response.getStatus()); 
    } 
} 

任何幫助將不勝感激。

+0

我不確定是否有辦法做到這一點。我的建議是讓交換機執行其默認行爲。然後你進行網絡通話。如果您的通話成功,請將開關保持原樣,否則將其恢復並向用戶顯示SnackBar,說明發生了什麼。 –

+0

**:)**我必須這樣做,作爲最後的手段... – Bharatesh

+0

我已經使用了相同的實現這就是爲什麼。做了很多挖掘並且找不到改變默認行爲的方法。 –

回答

0

好把更多的壓力在我的頭上,我發現類似變通,沒有一個確切的答案:)

@Override 
public void onClick(View view) { 
    if (view.getId()==R.id.switch_id) { 
     switchCompact.setChecked(!switchCompact.isChecked()); 
     //make networking stuff. 
    } 
} 

@RageshRamesh:我在想,爲什麼反應之前或之後沒有恢復其地位onClick即當交換機會改變其狀態。此解決方法按預期工作。謝謝你的幫助。

Happy_Coding;

+0

很高興提供幫助。我猜這是有效的。但是一次點擊不是UI更新多次? –

+0

是的,它確實..這就是爲什麼它所謂的解決方法**:)** ... – Bharatesh