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

功能startAlert应该在onCreate..之外

@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 回答