6

Zajmuję się tworzeniem aplikacji kalendarza i oto, co chcę zrobić; Na przykład, mam różne działania w różnych dniach miesiąca i w kalendarzu, chcę dodać ikonę do dni, które mają aktywność (na przykład koncert). jeśli dzień nie ma aktywności, ten dzień nie będzie miał ikony.Jak dodać ikonę lub zmienić ikonę dnia kalendarza?

Uwaga: używam CalendarView jako interfejsu użytkownika kalendarza.

Oto obraz, który próbuję wyjaśnić;

http://postimage.org/image/kdejw72nb/

Proszę mi pomóc, aby dodać ten drobny ikony do tego Spesific dni.

Z góry dziękuję.

+0

Masz odpowiedź? –

+0

Nie, nie, myślę, że to pytanie jest rozpaczliwe. –

Odpowiedz

3

Będziesz musiał utworzyć niestandardowy gridView. Może to wyglądać mniej więcej tak:

układ do piątku

<GridView 
    android:id="@+id/weekdays" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical" 
    android:clickable="false" 
    android:numColumns="7" /> 

layout.xml za dni

<GridView 
    android:id="@+id/days" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:numColumns="7" /> 

kod Java do wyświetlania dni tygodnia

GridView weekdays = (GridView) linearLayout.findViewById(R.id.weekdays); 
weekdays.setAdapter(new Weekdays()); 


public class WeekDays extends BaseAdapter { 
String[] weekdays = null; 

public WeekDayAdapter() { 
    DateFormatSymbols dateFormatSymbols= new DateFormatSymbols(); 

    weekdays = = dateFormatSymbols.getShortWeekdays(); 
} 

public int getCount() { 
    return 7; 
} 

public Object getItem(int position) { 
    return weekdays[position]; 
} 

public long getItemId(int position) { 
    return GridView.INVALID_ROW_ID; 
} 

public View getView(int position, View convertView, ViewGroup parent) { 
    View view = null; 

    view = new LinearLayout(parent.getContext()); 
    view.setLayoutParams(new GridView.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 
    view.setOrientation(Horizontal); 

    LinearLayout linearLayout = new LinearLayout(parent.getContext()); 
    linearLayout.setOrientation(Vertical); 

    TextView weekDays = new TextView(parent.getContext()); 
    weekDays.setText(weekdays[position + 1]); 

    linearLayout.addView(weekDays); 

    view.addView(linearLayout); 

    return view; 
} 
} 

Mogłabyś zrobić coś podobnego do ustawiania dni w miesiącu. Zapraszam do zadawania pytań.

+0

Powinienem był wiedzieć, że Android sprawi, że napiszesz tonę kodu na coś tak prostego :( –

Powiązane problemy