3

投稿された例に従って週カレンダーをプログラムしようとしています:
Android Honeycombアプリケーションの週カレンダービューを作成するにはどうすればよいですか?
そこに投稿されたXMLファイルに、現在の時間にあると思われるタイムマーカー行を追加しました。それを行うために私は使用します:

<LinearLayout
    android:id="@+id/currentTimeMarkerLinearLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="0dp"
    android:layout_marginTop="120dp"
    android:baselineAligned="false"
    android:orientation="horizontal"
    android:padding="0dp" >

  <View
      android:layout_width="0dp"
      android:layout_height="3dp"
      android:layout_weight="1" />

  <View
      android:id="@+id/currentTimeLineView"
      android:layout_width="0dp"
      android:layout_height="1dp"
      android:layout_weight="14"
      android:background="@color/dark_blue" />
</LinearLayout>

これLinearLayoutはaの内部にありRelativeLayout、両方ともの内部にありScrollViewます。これらの行で
を変更することにより、プログラミングを介してこの行を「移動」しようとしています。layout_margintTop

int dipValue = 720; // we want to convert this dip value to pix
Resources r = getResources();
float pix = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
    dipValue, r.getDisplayMetrics());

LinearLayout lay =(LinearLayout) findViewById(R.id.currentTimeMarkerLinearLayout);
LinearLayout.LayoutParams lp = lay.getLayoutParams();
lp.setMargins(0, (int) pix, 0, 0);
lay.setLayoutParams(lp);  

しかし、からにlp = lay.getLayoutParams()変換できないというエラーが表示されます。ViewGroup.LayoutParamsLinearLayout.LayoutParams

私は何が間違っているのですか?

4

1 に答える 1

5

しかし、lp = lay.getLayoutParams()でエラーが発生し、ViewGroup.LayoutParamsからLinearLayout.LayoutParamsに変換できないことを通知します。

がタイプのよりもLinearLayoutでラップされている場合(子は親からを取得します)。また、おそらく、コードで使用しているクラスに対して間違ったクラスをインポートしました。RelativeLayoutLayoutpParamsRelativeLayout.LayoutParamsLayoutParamsLayoutParams

LinearLayout lay = (LinearLayout) findViewById(R.id.currentTimeMarkerLinearLayout);
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams)lay.getLayoutParams();
于 2012-12-06T15:41:55.690 に答える