2014-10-23 1 views
0

, что я пытаюсь сделать это, с этим Настраиваемый URL мойКак разобрать пользовательский URL-адрес в событии календаря?

(mlevents://add/event?day=8&month=10&year=2014&timestring=12:00 PM - 12:30 PM &hourS=12&minuteS=00&hourE=12&minuteE=30&title=Filene 101: Think. Do. Change. | Webinar&timezone=CST) 

быть в состоянии разобрать и сохранить как событие календаря, который будет хранить в Google Calendar, у меня не было никакой удачи с ним и у меня есть mlevents настраивается как пользовательская схема в моем manifest.xml, но все равно не повезло. Как бы я решил настроить это, чтобы он работал правильно?

+0

вы хотите получить: день, месяц, год, то timestri ng, и время и т. д.! –

+0

@ ZiedRebhi true, но я думаю, что я не уверен в том, как эффективно захватить эти данные, я знаю, как передать его в календари после того, как у меня есть данные, но когда в моем веб-просмотре появляется URL-адрес mlevents, я не знаю, как захватить информацию и сохранить ее. – bumbob

+0

@ZiedRebhi Я читал JSOUP в течение последнего часа или около того, Удивляюсь, если это будет самый эффективный способ, и если так, мне нужна помощь, чтобы узнать, как использовать его таким образом, или ссылку на хороший учебник. – bumbob

ответ

1

Вам нужно использовать метод String.split, который принимает шаблон регулярного выражения, в зависимости от того, что вы хотите изменить шаблон, но для разделения строки на «&», тогда для каждой строки в массиве используйте «=», вы это сделать: Это полный код: Tru

public class Event { 
String[] myStringArr; 

int day; 
int month; 
int year; 
String timeString; 
int hourS; 
int minuteS; 
int hourE; 
int minuteE; 
String title; 
String timezone; 

public int getDay() { 
    return Integer.parseInt(myStringArr[0].split("=")[1]); 
} 

public int getMonth() { 
    return Integer.parseInt(myStringArr[1].split("=")[1]); 
} 

public int getYear() { 
    return Integer.parseInt(myStringArr[2].split("=")[1]); 
} 

public String getTimeString() { 
    return myStringArr[3].split("=")[1]; 
} 

public int getHourS() { 
    return Integer.parseInt(myStringArr[4].split("=")[1]); 
} 

public int getMinuteS() { 
    return Integer.parseInt(myStringArr[5].split("=")[1]); 
} 

public int getHourE() { 
    return Integer.parseInt(myStringArr[6].split("=")[1]); 
} 

public int getMinuteE() { 
    return Integer.parseInt(myStringArr[7].split("=")[1]); 
} 

public String getTitle() { 
    return myStringArr[8].split("=")[1]; 
} 

public String getTimezone() { 
    return myStringArr[9].split("=")[1]; 
} 

public Event(String[] myStringArr) { 
    super(); 
    this.myStringArr = myStringArr; 
} 

}

в своей деятельности:

String customUrl = "(mlevents://add/event?day=8&month=10&year=2014&timestring=12:00 PM - 12:30 PM &hourS=12&minuteS=00&hourE=12&minuteE=30&title=Filene 101: Think. Do. Change. | Webinar&timezone=CST)"; 
    final String[] myStringArr = customUrl.split("&"); 
    Event event = new Event(myStringArr); 

    System.out.println(event.getDay()); // -> return 8 : the day 
    System.out.println(event.getTitle()); // return Filene 101: Think. Do. Change. | Webinar 

    // etc.. your variable event contains all data from your url , 
    // to get an info just call : event.getWhatYouWant(); 
+0

да, это будет работать, если бы у меня был один URL-адрес по умолчанию, но событие будет меняться в зависимости от того, какие события они намереваются нажать, существует ли какой-либо «универсальный» способ достижения этого, параметры всегда будут говорить в этом порядке, но переменные будут меняться. – bumbob

+0

Можете ли вы дать мне другой пример URL! –

+0

конечно! Большое спасибо за то, что я обошел [link] mlevents: // add/event? day = 24 & month = 10 & year = 2014 & timestring = 7: 30 AM - 8:30 AM & hourS = 07 & minuteS = 30 & hourE = 08 & minuteE = 30 & title = Event Title & timezone = PST [/ link] как вы можете сказать, имеет тот же макет, что и разные переменные. – bumbob

Смежные вопросы