2016-12-26 46 views
0

我想將我的OnClick內容分隔到另一個類中。
將另一個類中的onclick內容分開是否很好?
如果是的話,我的編碼方式是正確的方式還是有人能給我一個更好的方法?另一類中單獨的OnClick內容

public class MainActivity extends AppCompatActivity { 

    private ButtonsActions mButtonsActions; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     ButterKnife.bind(this); 

     mButtonsActions = new ButtonsActions(this); 
    } 

    @OnClick(R.id.btn1) 
    public void btnTest1() { 
     mButtonsActions.btnTest1(); 
    } 

    @OnClick(R.id.btn2) 
    public void btnTest2() { 
     mButtonsActions.btnTest2(); 
    } 

} 


public class ButtonsActions { 

    private MainActivity view; 

    public ButtonsActions(MainActivity view) { 
     this.view = view; 
    } 

    public void btnTest1() { 
     Toast toast = Toast.makeText(view, "Button 1 clicked!", Toast.LENGTH_SHORT); 
     toast.show(); 
    } 

    public void btnTest2() { 
     Toast toast = Toast.makeText(view, "Button 2 clicked!", Toast.LENGTH_SHORT); 
     toast.show(); 
    } 

} 
+0

爲什麼不去代碼審查堆棧交換 –

回答

1

有沒有確切的答案給你的問題。

你試圖達到什麼目標?

對我來說,這聽起來像你想分離的關注。

MVC解決這些問題會很好,但不幸的是android應用程序的結構不允許你實現它。

那麼有什麼選擇?

那麼你仍然可以分開的擔憂,但不是你正在做的方式,你在不同的類中把代碼,是所有涉及到UI這樣的代碼應該保持活動的內部,因爲它屬於表示層

你需要做的是抽象所有的業務邏輯分開的類。

您可以使用數據庫邏輯

然後,您將能夠通過實施設計模式來進一步推進,因爲它可能適用於存儲庫模式,以便通過服務進行所有數據庫事務。

或者你也許會建立一個API服務,通過它完成所有的網絡任務。

最後如果你想要進一步研究,可以應用固體原理和依賴注入,爲可重用性創建util類,並將單元測試置於適當位置。

相關問題