0

http://i.imgur.com/PyO4q.png?1

この画像はグリッドビューを使ってカレンダーを作っていますが、今度は「日」に新しいイベントを追加したいと思います。そこでgridview-day内でリストビューを使おうと思ったのですが、問題はリストビューがスクロールしないことです。リストビューのスクロールがグリッドビューと衝突する可能性があると思います。この問題を解決するアイデアを教えてください。

public View getView(int 位置、View convertView、ViewGroup 親) {

    View v = convertView;
    TextView dayView;
    TextView present;
    TextView meeting;
    TextView other;
    if (convertView == null) {  // if it's not recycled, initialize some attributes
        LayoutInflater vi = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        v = vi.inflate(R.layout.calendar_item, null);

    }
    dayView = (TextView)v.findViewById(R.id.date);
    present=(TextView)v.findViewById(R.id.ptextView1);
    meeting=(TextView)v.findViewById(R.id.mtextView2);
    other=(TextView)v.findViewById(R.id.otextView3);
   // listitem=(ListView)v.findViewById(R.id.calendarlist);
  //  listitem.setOverScrollMode(View.OVER_SCROLL_ALWAYS);
    // disable empty days from the beginning
    if(days[position].equals("")) {
        dayView.setClickable(false);
        dayView.setFocusable(false);
    }
    else {
        // mark current day as focused
        if(month.get(Calendar.YEAR)== selectedDate.get(Calendar.YEAR) && month.get(Calendar.MONTH)== selectedDate.get(Calendar.MONTH) && days[position].equals(""+selectedDate.get(Calendar.DAY_OF_MONTH))) {
            v.setBackgroundResource(R.drawable.item_background_focused);
        }
        else {
            v.setBackgroundResource(R.drawable.list_item_background);
        }
    }

    dayView.setText(days[position]);
    present.setVisibility(View.GONE);
    meeting.setVisibility(View.GONE);
    other.setVisibility(View.GONE);






    for(int t=0;t<date1.size();t++){


    if(returndouble(dayView.getText().toString()).equals(date1.get(t).get(3))){

        if(date1.get(t).get(1).equals("Presented")){
            meeting.setVisibility( View.VISIBLE);
        }else if(date1.get(t).get(1).equals("Present")){
            present.setVisibility( View.VISIBLE);
        }else{
            other.setVisibility( View.VISIBLE);
        }


    }
    }
    // create date string for comparison
    String date = days[position];

    if(date.length()==1) {
        date = "0"+date;
    }
    String monthStr = ""+(month.get(Calendar.MONTH)+1);
    if(monthStr.length()==1) {
        monthStr = "0"+monthStr;
    }

    // show icon if date is not empty and it exists in the items array
   // ImageView iw = (ImageView)v.findViewById(R.id.date_icon);
  /*  if(date.length()>0 && items!=null && items.contains(date)) {          
        iw.setVisibility(View.VISIBLE);
    }
    else {
        iw.setVisibility(View.INVISIBLE);
    }*/
    return v;
}



public void refreshDays()
{

    // clear items
    items.clear();

   Calendardb date=new Calendardb(mContext);
   date1= date.calendarselect(String.valueOf( month.get(Calendar.YEAR))+"/"+returndouble(String.valueOf((month.get(Calendar.MONTH)+1))));
    int lastDay = month.getActualMaximum(Calendar.DAY_OF_MONTH);
    int firstDay = (int)month.get(Calendar.DAY_OF_WEEK);

    // figure size of the array
    if(firstDay==1){
        days = new String[lastDay+(FIRST_DAY_OF_WEEK*6)];
    }
    else {
        days = new String[lastDay+firstDay-(FIRST_DAY_OF_WEEK+1)];
    }

    int j=FIRST_DAY_OF_WEEK;

    // populate empty days before first real day
    if(firstDay>1) {
        for(j=0;j<firstDay-FIRST_DAY_OF_WEEK;j++) {
            days[j] = "";
        }
    }
    else {
        for(j=0;j<FIRST_DAY_OF_WEEK*6;j++) {
            days[j] = "";
        }
        j=FIRST_DAY_OF_WEEK*6+1; // sunday => 1, monday => 7
    }

    // populate days
    int dayNumber = 1;
    for(int i=j-1;i<days.length;i++) {
        days[i] = ""+dayNumber;
        dayNumber++;
    }
}
4

0 に答える 0