2016-10-30 12 views
-1

私はのEditText経由でリマインダーと呼ばれる文字列を取るしようとしている、通知に表示

private static String reminder; 
private Button btn; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    EditText text = (EditText) findViewById(R.id.Name); 
    reminder = text.getText().toString(); 
    btn = (Button) findViewById(R.id.button); 
    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Calendar calendar = Calendar.getInstance(); 

      Intent intent = new Intent(getApplicationContext(), Notifications.class); 
      PendingIntent pend = PendingIntent.getBroadcast(getApplicationContext(), 100, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
      AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); 

      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 
       am.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis() + 1000, pend); //set repeating every 24 hours 
      } 


     } 
    }); 
} 

public static String getRem() { 
    return reminder; 
} 

このアプリは空白の通知を表示します

ここにコードを投稿するのはちょっと複雑ですので、ここでコードを直接投稿しないでごめんなさい!

答えて

0

通知にはonCreateの値が与えられます。したがって、onCreateが呼び出されていない場合は、テキストとしてnullが返されます。 行うための最善のことは、直接値を初期化するために、次のようになります。リマインダーの値は、あなたの活動には変化しないため

private static String reminder = "Reminder"; 

私は、これは結構ですと仮定しています。

+0

私はリマインダを "リマインダ"に初期化したくないです。私はEditText(私がすでにやっている)にリマインダを初期化します。 –

+0

それで、あなたはリマインダーをeditTextにマッチさせたいと思います。編集テキストが変更された場合、それは思い出されますか?その場合、アプリが実行されている場合にのみリマインダーに値が設定されます。あなたはまたEditTextテキストを置く必要があります=(EditText)findViewById(R.id.Name); reminder = text.getText()。toString(); getReminderの内部。あなたはまたそれがあなたの受信機の中でヌルかどうかを確認する必要があります。そうであれば、デフォルト値を渡すだけです。 –

+0

私はそれを解決していただきありがとうございます –

0

私は私が行うために必要なit..allを解くのonClickメソッドの内部

EditText text = (EditText) findViewById(R.id.Name); 

reminder = text.getText().toString(); 

に助けた皆のための

感謝を宣言することです。

関連する問題