현재 만들고 있는 앱이 버스관련어플입니다
리스트뷰로 칸별로 버스 노선을 나누고 좌표구역을 설정해놨습니다. 그리고 칸마다 버튼을 달았어용
만약 리스트1에있는 버튼을 누르고 버스가 해당 좌표구역에 들어오면 푸시알림을 받아오도록 하고싶습니다.
현재 버튼 누르면 바로 푸시알림뜨게 하는거까진 했는데..
조건을 어떻게 해야되는지 모르겠네요ㅠㅠ 도와주세요ㅜㅠㅠㅠ
ListViewAdapter 코드 일부분입니다.
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
final int pos = position;
final Context context = parent.getContext();
// "listview_item" Layout을 inflate하여 convertView 참조 획득.
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(com.satt.mjbus.R.layout.listview_item, parent, false);
}
// 화면에 표시될 View(Layout이 inflate된)으로부터 위젯에 대한 참조 획득
final ImageView iconImageView = (ImageView) convertView.findViewById(com.satt.mjbus.R.id.imageView1) ;
ImageView lineImageView = (ImageView) convertView.findViewById(com.satt.mjbus.R.id.imageView2) ;
TextView titleTextView = (TextView) convertView.findViewById(com.satt.mjbus.R.id.textView1) ;
TextView descTextView = (TextView) convertView.findViewById(com.satt.mjbus.R.id.textView2) ;
//버스아이콘 전체 안보이게
iconImageView.setVisibility(View.INVISIBLE);
descTextView.setVisibility(View.INVISIBLE);
if(Latitude > 37.224000 && Latitude < 37.224400 ) {
if (pos == 0) {
iconImageView.setVisibility(View.VISIBLE);
descTextView.setVisibility(View.VISIBLE);
}
}else if(Latitude >37.224400 && Latitude <37.231600 ){
if( pos == 1 ){
iconImageView.setVisibility(View.VISIBLE);
descTextView.setVisibility(View.VISIBLE);
}
}else if(Latitude > 37.231600 && Latitude < 37.234000){
if( pos == 2 ){
iconImageView.setVisibility(View.VISIBLE);
descTextView.setVisibility(View.VISIBLE);
}
}else if(Latitude > 37.234000 && Latitude < 37.238400){
if( pos == 3 ){
iconImageView.setVisibility(View.VISIBLE);
descTextView.setVisibility(View.VISIBLE);
eState = Constants.EBusState.Up;
}
}else if(Latitude > 37.234000 && Latitude < 37.238400){
if( pos ==4 ){
iconImageView.setVisibility(View.VISIBLE);
descTextView.setVisibility(View.VISIBLE);
}
}else if(Latitude > 37.231600 && Latitude < 37.234000){
if( pos == 5 ){
iconImageView.setVisibility(View.VISIBLE);
descTextView.setVisibility(View.VISIBLE);
}
}else if(Latitude > 37.222200 && Latitude < 37.231600){
if( pos == 6 ){
iconImageView.setVisibility(View.VISIBLE);
descTextView.setVisibility(View.VISIBLE);
eState = Constants.EBusState.Down;
}
}else if(Latitude > 37.219400 && Latitude < 37.222200){
if( pos == 7 ){
iconImageView.setVisibility(View.VISIBLE);
descTextView.setVisibility(View.VISIBLE);
eState = Constants.EBusState.Down;
}
}
//버튼을 클릭했을 때 이벤트 발생
final ImageButton btn = (ImageButton)convertView.findViewById(com.satt.mjbus.R.id.button);
btn.setTag(position);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int poss = (Integer) v.getTag();
int check_num = 0;
btn.setSelected(true);
System.out.println("$$$$$$$$$$$$$$$" + pos);
if (check_num == 0) {
btn.setSelected(true);
check_num = 1;
} else if (check_num == 1) {
btn.setSelected(false);
check_num = 0;
}
NotificationManager notificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
Intent intent1 = new Intent(context.getApplicationContext(), ListViewAdapter.class); //인텐트 생성.
Notification.Builder builder = new Notification.Builder(context.getApplicationContext());
intent1.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
//현재 액티비티를 최상으로 올리고, 최상의 액티비티를 제외한 모든 액티비티를 없앤다.
PendingIntent pendingNotificationIntent = PendingIntent.getActivity(context, 0, intent1, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setSmallIcon(R.drawable.bus)
.setTicker("버스가 잠시후 도착 예정입니다.")
.setWhen(System.currentTimeMillis())
.setContentTitle("푸쉬 제목")
.setContentText("푸쉬내용")
.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE)
.setContentIntent(pendingNotificationIntent)
.setAutoCancel(true)
.setOngoing(true);
notificationManager.notify(1, builder.build());
// Notification send
}
});
btn.setFocusable(false);
// Data Set(listViewItemList)에서 position에 위치한 데이터 참조 획득
ListViewItem listViewItem = listViewItemList.get(position);
// 아이템 내 각 위젯에 데이터 반영
iconImageView.setImageDrawable(listViewItem.getIcon());
lineImageView.setImageDrawable(listViewItem.getline());
titleTextView.setText(listViewItem.getTitle());
descTextView.setText(listViewItem.getDesc());
return convertView;
}