找不到方法onClick(查看)

时间:2014-09-16 20:15:44

标签: java android xml togglebutton

当我点击切换按钮时,我有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方法错误将消失,但没有发生任何事情,即使我放在那里看到的按钮是按钮工作与否!

2 个答案:

答案 0 :(得分:0)

xml中,您已定义要在用户点击项目时调用方法onClick。但是,您没有创建该方法!在MainActivity中,添加以下方法:

public void onClick(View v){

}

答案 1 :(得分:0)

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

public void onClick(View v){      //你的代码.. enter code here }