Heyho。
是否有可能将所有onClick()方法放在一个类中以获得更好的概述?
那是我尝试过的:
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 :(得分:0)
您的应用崩溃是因为您将view
作为参数传递。目前你正在设置android:onClick
,其中android系统中没有参数会导致IllegalStateException
。学习如何以编程方式制作onClick
,然后将所有活动都放在课堂上。您可以在项目中创建另一个java类来处理所有click事件,而不是扩展mainActivity。