0

ユーザーがカスタム通知リマインダーを作成できるAndroid用のシンプルなアプリを作成しようとしています。私はプログラミングにかなり慣れていないので、edittextウィジェットからテキストを取得して通知で使用するのに問題があります。同様の質問に答えて人々が投稿したいくつかの方法を試しましたが、うまくいきませんでした。お願いします私のコードを見て、助けてみてください

public class MainActivity extends Activity {
private static final int NOTIFICATION_ID = 1;
Button   mButton;
EditText mTitle;
EditText mContent;



public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    mButton = (Button)findViewById(R.id.button1);
    mTitle   = (EditText)findViewById(R.id.editTitle);
    mContent   = (EditText)findViewById(R.id.editContent);


    int icon = R.drawable.ic_launcher;
    CharSequence tickerText = "Reminder Created";
    long when = System.currentTimeMillis();
    Context context = getApplicationContext();
    CharSequence contentTitle = MainActivity.this.mTitle.getText().toString();
    CharSequence contentText = MainActivity.this.mContent.getText().toString();
    Intent notificationIntent = new Intent(this, MainActivity.class);
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);


    final Notification notification = new Notification(icon, tickerText, when);
    notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);


    String ns = Context.NOTIFICATION_SERVICE;
    final NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);


    Button statusbarnotify = (Button) findViewById(R.id.button1);
    statusbarnotify.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {               
            mNotificationManager.notify(NOTIFICATION_ID, notification);




        }
    });   
}    



@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

4

1 に答える 1

0

私が見る限り、あなたのコードに問題はありませんが、問題はあなたが内部ですべてのことを行うことですonCreate.

onCreate名前が示すように、メソッドはアクティビティの作成時にのみ呼び出されます。作成時に入力がないため、contentTitlecontentTextは空の文字列になり、通知は期待どおりに表示されません。

この問題を解決するには、edittext ウィジェットからテキストを取得し、onClick配置したボタンのメソッド内に通知を作成する必要があります。つまり、作成したこれらすべてのものを運ぶ必要があります

int icon = R.drawable.ic_launcher;
CharSequence tickerText = "Reminder Created";
long when = System.currentTimeMillis();
Context context = getApplicationContext();
CharSequence contentTitle = mTitle.getText().toString();
CharSequence contentText = mContent.getText().toString();
Intent notificationIntent = new Intent(this, MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);


final Notification notification = new Notification(icon, tickerText, when);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);


String ns = Context.NOTIFICATION_SERVICE;
final NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);

onClick通知マネージャーに通知する前にオーバーライドするメソッド内。

それが役立つことを願っています!

于 2012-07-14T22:26:16.717 に答える