2015-10-21 35 views
0

我有兩個類LCDashBoard2.java和AlarmReceiver.java.I在 LCDashBoard2.java中設置鬧鐘並將其接收到AlarmReceiver.java中。 它會導致在onReceive方法中的AlarmReceiver類中顯示Toast消息。在LCDashBoard2.java中我有一個帶有id textViewBadge的textview。現在我想要做的是在產生警報時更改textview的值。當警報產生時更改textview的值

 public class LCDashBoard2 extends AppCompatActivity { 
     TextView textViewBadge; 
      Button idBtnMedicineCabinet; 
      private Timer timer = new Timer(); 
      private TimerTask timerTask; 

      TimePicker myTimePicker; 
      Button buttonstartSetDialog; 
      TextView textAlarmPrompt; 
      final static int RQS_1 = 1; 

      TimePickerDialog timePickerDialog; 

      int count=0; 
      @Override 
      protected void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.activity_lcdash_board2); 

       textViewBadge=(TextView)findViewById(R.id.textViewBadge); 
       idBtnMedicineCabinet=(Button)findViewById(R.id.idBtnMedicineCabinet); 


     Intent intent = new Intent(getBaseContext(), AlarmReceiver.class); 
       PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, 0); 


       AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
       alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), pendingIntent); 

      } 

     } 

and my AlarmReceiver.java class is here 

public class AlarmReceiver extends BroadcastReceiver { 
     @Override 
     public void onReceive(Context arg0, Intent arg1) { 
      Toast.makeText(arg0, "Alarm received in AlarmReceiver!", Toast.LENGTH_LONG).show(); 


     } 
    } 

回答

0

在您的LCDashBoard2類中創建一個函數,然後從您的AlarmReceiver onReceive中調用它。

在那個函數textViewBadge中。

編輯:

在你LCDashBoard2添加以下功能:

public static void changeText(String args){ 
    textViewBadge.setText(args); 
} 

在你的onReceive只是調用該函數:

LCDashBoard2.changeText("Your New Text"); 
+0

怎麼能請你給我編輯的代碼? – Dhiraj

+0

仍然應用程序崩潰... – Dhiraj

+0

你得到的錯誤是什麼? –

0

讓TextView的全局變量。然後使用.setText()方法在必要時更改UI中顯示的文本。

0

聲明的TextView全球爲:

public static TextView textViewBadge; 

,並在您reciever,鬧鐘響起後:

LCDashBoard2.textViewBadge.setText("YOUR TEXT"); 
+0

我的應用程序在使用後崩潰,您可以有解決方案來避免這種情況 – Dhiraj

+0

你能告訴它在哪一行崩潰嗎?你有沒有參考TextView? – Prakhar

+0

如何參考textview? – Dhiraj