2017-01-22 61 views
0

Heyho。Java/Android:收集Helper類中的所有Button方法

是否有可能將所有onClick()方法放在一個類中以獲得更好的Overview?

那就是我已經試過:

public class ButtonHandler extends MainActivity 
{ 
    public ButtonHandler() 
    { 

    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 
    public void OnClick1(View v) 
    { 
     if (_inputTextView != null) 
     { 
      _inputTextView.append("1"); 
     } 
    } 
} 

但是這給了我以下異常:

E/AndroidRuntime: FATAL EXCEPTION: main 
       Process: com.fayt.taschenrechner, PID: 4009 
       java.lang.IllegalStateException: Could not find method OnClick1(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'btn_1' 
        at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:327) 
        at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284) 
        at android.view.View.performClick(View.java:5198) 
        at android.view.View$PerformClick.run(View.java:21147) 
        at android.os.Handler.handleCallback(Handler.java:739) 
        at android.os.Handler.dispatchMessage(Handler.java:95) 
        at android.os.Looper.loop(Looper.java:148) 
        at android.app.ActivityThread.main(ActivityThread.java:5417) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

是,即使是可能的,或者我在想什麼不可能的?

電賀

回答

0

你的應用程序崩潰是因爲你通過view爲參數。目前您正在設置,在android系統中沒有參數會導致IllegalStateException。瞭解如何以編程方式製作onClick,然後您可以將所有活動放在課堂上。您可以簡單地在您的項目中創建另一個Java類來處理所有點擊事件,而不是擴展mainActivity。

+0

現在正常工作。非常感謝你。 – iF4yt