当我点击切换按钮时,我有2个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文件中声明了切换,这是
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宣布声明,但没有一个工作!
<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" />
我只需要运行虚空但我无法找到一种方法,如果我删除XML中的onclick方法错误将消失,但没有发生任何事情,即使我放在那里看到的按钮是按钮工作与否!
答案 0 :(得分:0)
在xml
中,您已定义要在用户点击项目时调用方法onClick
。但是,您没有创建该方法!在MainActivity
中,添加以下方法:
public void onClick(View v){
}
答案 1 :(得分:0)
只需实现View.OnclickListener接口,然后添加相应的方法:
public void onClick(View v){
//你的代码.. enter code here
}