私は周りを探し回っていて、さまざまな解決策を試しましたが、これを動作させることはできません。DialogFragmentクラス内に通知を作成しても機能しません。 (Android)
私は、リストと「追加」ボタンでMainActivityを持っています。私が追加ボタンをクリックすると私はDialogFragmentを開きます。ダイアログのユーザーがデータを入力して「追加」を押すと、「xxxxがリストに追加されました」という通知が表示されますが、表示されません。
私はこのようになりますAddDialogのための別々のクラスがあります。
public class AddDialogFragment extends DialogFragment {
Button btnAdd;
Button btnCancel;
TextView etNewSerial, etNewBrand, etNewModel;
String newSerial, newBrand, newModel;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View rootView = inflater.inflate(R.layout.dialog_add, container, false);
getDialog().setTitle("Add new serial!");
btnAdd = (Button) rootView.findViewById(R.id.btnAddNew);
etNewSerial = (TextView) rootView.findViewById(R.id.etNewSerial);
etNewBrand = (TextView) rootView.findViewById(R.id.etNewBrand);
etNewModel = (TextView) rootView.findViewById(R.id.etNewModel);
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
newSerial = etNewSerial.getText().toString();
newBrand = etNewBrand.getText().toString();
newModel = etNewModel.getText().toString();
String url = "MY_VOLLEY_URL"
StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
int icon = 0;
CharSequence notiText = "Item Added!";
long notiTime = System.currentTimeMillis();
CharSequence notiTitle = "Item Added!";//Titel
CharSequence notiContent = newSerial + " added!";
PendingIntent pendingIntent = PendingIntent.getActivity(getActivity(), 0, new Intent(), PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder notBuilder = new NotificationCompat.Builder(getActivity());
notBuilder.setSmallIcon(icon)
.setTicker(notiText)
.setWhen(notiTime)
.setAutoCancel(true)
.setContentText(notiContent)
.setContentTitle(notiTitle)
.setContentIntent(pendingIntent);
Notification notification = notBuilder.build();
NotificationManager myNotificationManager = (NotificationManager)getActivity().getSystemService(Context.NOTIFICATION_SERVICE);
myNotificationManager.notify(1, notification);
getDialog().dismiss();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
Volley.newRequestQueue(getActivity()).add(request);
}
});
return rootView;
}
}
しかし、通知は表示されませんが。私は "getActivity()"をコンテキストのための異なるメソッドに置き換えようとしてきましたが、それは重要ではないようです。誰にもこれを可能にするヒントがありますか?
どのような種類の通知あなたは本当に欲しいですか? 「リストに追加されました」という少しのポップアップか、新しいWhatsAppメッセージや電文メッセージなどの新しいチャットメッセージのように表示される実際の「通知」ですか? ユーザーに少しだけヒントが必要な場合は、「Toast」または「SnackBar」をチェックしてください – deHaar
APIからの成功応答を受け取っていますか? –
はい、動作します! – uckizz