Java 在单击(视图)时找不到方法
我有两个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
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)。从那里,您可以以各种方式对其他类调用方法。