Java 在单击(视图)时找不到方法

Java 在单击(视图)时找不到方法,java,android,xml,togglebutton,Java,Android,Xml,Togglebutton,我有两个java文件和一个切换按钮,当我点击切换按钮时,我得到了错误 09-17 00:36:24.706: E/AndroidRuntime(30978): FATAL EXCEPTION: main 09-17 00:36:24.706: E/AndroidRuntime(30978): Process: com.soheil.prolight, PID: 30978 09-17 00:36:24.706: E/AndroidRuntime(30978): java.lang.Illegal

我有两个java文件和一个切换按钮,当我点击切换按钮时,我得到了错误

09-17 00:36:24.706: E/AndroidRuntime(30978): FATAL EXCEPTION: main
09-17 00:36:24.706: E/AndroidRuntime(30978): Process: com.soheil.prolight, PID: 30978
09-17 00:36:24.706: E/AndroidRuntime(30978): java.lang.IllegalStateException: Could not find a    method onClick(View) in the activity class com.soheil.prolight.MainActivity for onClick handler on view class android.widget.ToggleButton with id 'ToggleButton01'
我在第二个java文件中声明了toggle,即

public class StrobeLightConfig extends Activity {


StrobeRunner runner;
Thread bw;

public final Handler mHandler = new Handler();

public final Runnable mShowToastRunnable = new Runnable() {
    public void run() {
        showMessage();
    }
};

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final ToggleButton togglebutton = (ToggleButton) findViewById(R.id.ToggleButton01);

    runner = StrobeRunner.getInstance();
    runner.controller = this;




    togglebutton.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // Perform action on clicks
            if (togglebutton.isChecked()) {
                //test
                int duration = Toast.LENGTH_SHORT;

                Toast toast = Toast.makeText(getApplicationContext(),"soli", duration);
                toast.show();
                //test
                bw = new Thread(runner);
                bw.start();
            } else {
                runner.requestStop = true;
            }
        }
    });

    final SeekBar skbar = (SeekBar)findViewById(R.id.SeekBar01);
    skbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {
            runner.delay=progress;

        }
    });

    final SeekBar skbaroff = (SeekBar)findViewById(R.id.SeekBar02);
    skbaroff.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {
            runner.delayoff=progress;

        }
    });


}

@Override
protected void onStop() {
    runner.requestStop=true;
    ToggleButton togglebutton = (ToggleButton) findViewById(R.id.ToggleButton01);
    togglebutton.setChecked(false);

    super.onStop();
}

public void showMessage()
{
    String err = runner.errorMessage;
    runner.errorMessage="";
    if(!err.equals(""))
    {
        Context context = getApplicationContext();
        int duration = Toast.LENGTH_SHORT;

        Toast toast = Toast.makeText(context, err, duration);
        toast.show();
    }

    ToggleButton togglebutton = (ToggleButton) findViewById(R.id.ToggleButton01);
    togglebutton.setChecked(false);
}
}
我的主要活动是一个不同的文件,我也有活动主xml和onclick vent声明,但它们都不起作用

    <ToggleButton
    android:id="@+id/ToggleButton01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignTop="@+id/SeekBar01"
    android:layout_marginRight="46dp"
    android:onClick="onClick"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:textOff="@string/powerbuttonoff"
    android:textOn="@string/powerbuttonon" />


我只需要运行void,但如果我删除XML中的onclick方法,我找不到方法。错误将消失,但没有任何事情发生,即使是我放在那里看到的土司,按钮是否工作

在您的
xml
中,您定义了希望在用户单击项目时调用方法
onClick
。但是,您没有创建该方法!在
main活动中
,添加以下方法:

public void onClick(View v){

}

只需实现View.OnclickListener接口,然后添加相应的方法:

public void onClick(View v){

}
公共void onClick(视图v){ //您的代码..
在此处输入代码

}

请发布您的MainActivity代码,因为这是异常的来源。这是我的类文件。我想从我的calss文件运行onclick方法。此文件是单独的。java file@invertigo您需要将onclick事件连接到活动中(在本例中为MainActivity)。从那里,您可以以各种方式对其他类调用方法。