2014-04-17 33 views
1

下面是我的代码:EditText(文本框)不能在闹钟应用程序中工作?

import java.util.Calendar; 

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.view.Window; 
import android.widget.Button; 
import android.widget.EditText; 

public class AlarmMainActivity extends Activity { 
    Calendar cal = Calendar.getInstance(); 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
      this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.main); 

    Button set = (Button)findViewById(R.id.button1); 
    EditText Time = (EditText)findViewById(R.id.time); 
    int n =Integer.parseInt(Time.getText().toString()); 

    //Create an offset from the current time in which the alarm will go off. 
    cal.add(Calendar.SECOND, 10); 

    //Create a new PendingIntent and add it to the AlarmManager 
    Intent intent = new Intent(this, AlarmReceiverActivity.class); 
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 
     n, intent, PendingIntent.FLAG_CANCEL_CURRENT); 
    AlarmManager am = 
     (AlarmManager)getSystemService(Activity.ALARM_SERVICE); 
    am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 
      pendingIntent);  
} 

}

会发生什么在此代码是在目前的时间为10秒,这个应用程序会自动设置报警。我希望该用户在需要多少秒后进入。我尝试了,并在cal.add(Calendar.SECOND, 10);代替10,但它不工作。

+0

您的问题是什么? _it不工作?_表示给出所有详细信息 –

+0

我希望用户输入此plz编辑我的代码 –

+0

您必须移动此行'int n = Integer.parseInt(Time.getText()。toString());'on some '按钮点击'事件,然后做你的东西 –

回答

1

以及你可以做一两件事,我已经创建了一个另一个类

Home.java

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 

public class Home extends Activity{ 

    static int n = 0; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.home); 


     Button go = (Button)findViewById(R.id.button1); 
     go.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       EditText sec = (EditText)findViewById(R.id.editText1); 
       n = Integer.parseInt(sec.getText().toString()); 
       Intent go = new Intent("com.nerdwin15.demo.alarmdemo.AlarmMainActivity"); 
       startActivity(go); 
      } 
     }); 
    } 

} 

AlarmMainActivity.java

public class AlarmMainActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
      this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.main); 

     //Create an offset from the current time in which the alarm will go off. 
     Calendar cal = Calendar.getInstance(); 
     cal.add(Calendar.SECOND, Home.n); 

     //Create a new PendingIntent and add it to the AlarmManager 
     Intent intent = new Intent(this, AlarmReceiverActivity.class); 
     PendingIntent pendingIntent = PendingIntent.getActivity(this, 
      12345, intent, PendingIntent.FLAG_CANCEL_CURRENT); 
     AlarmManager am = 
      (AlarmManager)getSystemService(Activity.ALARM_SERVICE); 
     am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 
       pendingIntent); 
    } 

} 

现在,你在家庭课上输入你的时间,然后再去另一个。请务必在清单中更改您的LAUNCHER它应该是Home.java

2

你必须把这个int n =Integer.parseInt(Time.getText().toString());在一些Button click事件

像下面

ib_load.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
    int n =Integer.parseInt(Time.getText().toString()); 
    cal.add(Calendar.SECOND, n); 

    } 
});