将动态视图添加到RelativeLayout

问题描述 投票:0回答:1

我正试图制作一个日历应用程序跟随这个啧啧:qazxsw poi

但我需要为相应的RelativeLayout添加一个视图,但每次我尝试运行应用程序时都会崩溃。

我的片段.java文件:

How can I create a weekly calendar view for an Android Honeycomb application?

我的fragment_Calendar.xml

public class Calendar extends Activity {

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

/**
 * A placeholder fragment containing a simple view.
 */
public static class FragmentCalendar extends Fragment { 

    public FragmentCalendar() {
        RelativeLayout activeDay = (RelativeLayout)getActivity(). findViewById(R.id.sundayRelativeLayout);
        View viw = new View(null);
        RelativeLayout.LayoutParams lay = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT,2);
        lay.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
        viw.setBackgroundColor(Color.BLUE);
        viw.setLayoutParams(lay);
        activeDay.addView(viw);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_calendar,
                container, false);

        return rootView;
    }
}

不得不删除关于时间的部分,因为文件在这里发布很大。

正如您所看到的,必须在当天动态添加名为dayMarkerView的视图。

java dynamic view add
1个回答
1
投票

不得不改变:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.TJ.rijschool_app.Calendar" 
android:orientation="vertical"
android:padding="0dp" 
>


<LinearLayout
    android:id="@+id/dayLabelsLinearLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_marginTop="0dp" >

    <RelativeLayout
        android:id="@+id/currentMonthRelativeLayout"
        android:layout_width="0dp"
        android:layout_height="36dp"
        android:layout_weight="1" >

        <TextView
            android:id="@+id/currentMonthTextView"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:gravity="center"
            android:text=""
            android:textSize="15dp"
            android:textStyle="bold"
            android:textColor="@color/medium_dark_gray" />

        <TextView
            android:id="@+id/currentYearTextView"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:gravity="center"
            android:text=""
            android:textSize="13dp"
            android:textStyle="bold"
            android:textColor="@color/medium_dark_gray" />

    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/sundayHeaderRelativeLayout"
        android:layout_width="0dp"
        android:layout_height="36dp"
        android:layout_weight="2" >

        <TextView
            android:id="@+id/sundayDateTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_marginRight="6dp"
            android:text=""
            android:textColor="@color/medium_dark_gray"
            android:textSize="30dp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/sundayTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="6dp"
            android:text="@string/sun"
            android:textColor="@color/medium_dark_gray"
            android:textSize="15dp"
            android:textStyle="bold" />

         <View
            android:id="@+id/dayMarkerView"
            android:layout_width="fill_parent"
            android:layout_height="2dp"
            android:layout_alignParentBottom="true"
            android:background="@color/strong_blue" />

    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/mondayHeaderRelativeLayout"
        android:layout_width="0dp"
        android:layout_height="36dp"
        android:layout_weight="2" >


        <TextView
            android:id="@+id/mondayDateTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_marginRight="6dp"
            android:text=""
            android:textColor="@color/medium_dark_gray"
            android:textSize="30dp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/mondayTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="6dp"
            android:gravity="center"
            android:text="@string/mon"
            android:textColor="@color/medium_dark_gray"
            android:textSize="15dp"
            android:textStyle="bold" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/tuesdayHeaderRelativeLayout"
        android:layout_width="0dp"
        android:layout_height="36dp"
        android:layout_weight="2" >

        <TextView
            android:id="@+id/tuesdayDateTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_marginRight="6dp"
            android:text=""
            android:textColor="@color/medium_dark_gray"
            android:textSize="30dp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/tuesdayTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="6dp"
            android:text="@string/tue"
            android:textColor="@color/medium_dark_gray"
            android:textSize="15dp"
            android:textStyle="bold" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/wednesdayHeaderRelativeLayout"
        android:layout_width="0dp"
        android:layout_height="36dp"
        android:layout_weight="2" >

        <TextView
            android:id="@+id/wednesdayDateTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_marginRight="6dp"
            android:text=""
            android:textColor="@color/medium_dark_gray"
            android:textSize="30dp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/wednesdayTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="6dp"
            android:text="@string/wed"
            android:textColor="@color/medium_dark_gray"
            android:textSize="15dp"
            android:textStyle="bold" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/thursdayHeaderRelativeLayout"
        android:layout_width="0dp"
        android:layout_height="36dp"
        android:layout_weight="2" >

        <TextView
            android:id="@+id/thursdayDateTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_marginRight="6dp"
            android:text=""
            android:textColor="@color/medium_dark_gray"
            android:textSize="30dp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/thursdayTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="6dp"
            android:text="@string/thu"
            android:textColor="@color/medium_dark_gray"
            android:textSize="15dp"
            android:textStyle="bold" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/fridayHeaderRelativeLayout"
        android:layout_width="0dp"
        android:layout_height="36dp"
        android:layout_weight="2" >

        <TextView
            android:id="@+id/fridayDateTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_marginRight="6dp"
            android:layout_marginLeft="6dp"
            android:text=""
            android:textColor="@color/medium_dark_gray"
            android:textSize="30dp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/fridayTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="6dp"
            android:text="@string/fri"
            android:textColor="@color/medium_dark_gray"
            android:textSize="15dp"
            android:textStyle="bold" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/saturdayHeaderRelativeLayout"
        android:layout_width="0dp"
        android:layout_height="36dp"
        android:layout_weight="2" >

        <TextView
            android:id="@+id/saturdayDateTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_marginRight="6dp"
            android:text=""
            android:textColor="@color/medium_dark_gray"
            android:textSize="30dp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/saturdayTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="6dp"
            android:text="@string/sat"
            android:textColor="@color/medium_dark_gray"
            android:textSize="15dp"
            android:textStyle="bold" />
    </RelativeLayout>
</LinearLayout>

至:

        public FragmentCalendar() {
        RelativeLayout activeDay = (RelativeLayout)getActivity(). findViewById(R.id.sundayRelativeLayout);
        View viw = new View(null);
        RelativeLayout.LayoutParams lay = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT,2);
        lay.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
        viw.setBackgroundColor(Color.BLUE);
        viw.setLayoutParams(lay);
        activeDay.addView(viw);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_calendar,
                container, false);

        return rootView;
    }
© www.soinside.com 2019 - 2024. All rights reserved.