1

アラーム アプリケーションを作成しようとしていますが、このコードをオンラインで見つけました。しかし、それをEclipseにコピーすると、startAlertメソッドでエラーが発生し、「voidは変数startAlertの無効なタイプです」と表示されます。

package tanvi.alarm;

import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        public void startAlert(View view) {
            EditText text = (EditText) findViewById(R.id.editText1);
            int i = Integer.parseInt(text.getText().toString());
            Intent intent = new Intent(this, MyBroadcastReceiver.class);
            PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 234324243, intent, 0);
            AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
            alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()
                    + (i * 1000), pendingIntent);
            Toast.makeText(this, "Alarm set in " + i + " seconds",
                    Toast.LENGTH_LONG).show();

    }
}
4

2 に答える 2

1

関数startAlertonCreate..の外側にある必要があります

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
          startAlert(view ); //<--------- no need to pass view if function is on same activity 
    }




    public void startAlert(View view) {
                EditText text = (EditText) findViewById(R.id.editText1);
                int i = Integer.parseInt(text.getText().toString());
                Intent intent = new Intent(this, MyBroadcastReceiver.class);
                PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 234324243, intent, 0);
                AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
                alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()
                        + (i * 1000), pendingIntent);
                Toast.makeText(this, "Alarm set in " + i + " seconds",
                        Toast.LENGTH_LONG).show();


}
于 2012-06-30T13:47:34.230 に答える
0

関数をメソッドの下に配置してから、メソッドonCreate()内で呼び出す必要がありonCreate()ます。

于 2012-06-30T13:48:08.737 に答える