2012-07-14 2 views
0

사용자가 알림 알림을 만들 수있는 Android 용 앱을 만들고 싶습니다. 프로그래밍에 익숙하지 않고 편집 텍스트 위젯에서 텍스트를 가져 와서 알림에 사용하는 데 문제가 있습니다. 비슷한 질문에 대한 답변으로 사람들이 게시 한 몇 가지 방법을 시도했지만 효과가 없습니다. 행복은 내 코드를보고edittext에서 텍스트를 가져와 android 알림으로 사용하기

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; 
} 

}

답변

0

까지 내가 보는대로 코드에 문제가 없는지를 도우려고하지만, 문제는 onCreate 안에 모든 물건을 할 수 있습니다.

onCreate 메서드는 이름에서 알 수 있듯이 액티비티 생성시에만 호출됩니다. 생성시 입력이 없으므로 contentTitlecontentText은 빈 문자열이되며 원하는대로 알림이 표시되지 않습니다.

이 문제를 해결하려면 edittext 위젯에서 텍스트를 가져와 넣은 단추의 onClick 메서드 내에서 알림을 만들어야합니다. 즉, 당신은 당신이 알림 관리자를 통지하기 전에 우선 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); 

을 만든 모든 물건을 수행해야합니다.

희망 하시겠습니까?

+0

탱크가 너무 많습니다. 프로그래밍을 처음 접했을 때 큰 도움이되었습니다. – user1526178

관련 문제