2014-09-16 2 views
0

У меня есть 2 файлов Java и одну кнопку переключения, когда я нажимаю на кнопку переключения я получаю ошибкуНе удалось найти метод OnClick (View)

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 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" /> 

я просто нужно запустить пустоту, но я не могу найти способ, если я удалить OnClick метод ошибки XML пропадут, но ничего не происходит даже тост я положил там, чтобы увидеть это кнопка работает или нет!

+1

пожалуйста, напишите код MainActivity как то, где исключение исходит из – invertigo

+0

это мой файл класса я хочу, чтобы запустить метод OnClick из моего файла Calss этот файл отдельный файл .java @invertigo – Soheyl

+1

вы собираетесь к ней d, чтобы связать событие onclick с активным активным (в данном случае MainActivity). оттуда вы могли бы вызывать методы на вашем другом классе в разных моделях. – invertigo

ответ

0

В вашем xml вы указали, что хотите, чтобы метод вызывал вызов метода onClick, когда пользователь нажимает на элемент. Однако вы не создали этот метод! В вашем MainActivity добавьте следующий метод:

public void onClick(View v){ 

} 
0

Просто реализует интерфейс View.OnclickListener, а затем добавить соответствующий метод:

общественного недействительного OnClick (View v) { // Вашего кода .. enter code here }

Смежные вопросы