2012-03-28 14 views
2
My Rgactivity code is here: 

package com.apcl.skd; 

import android.app.Activity; 
import android.graphics.Color; 
import android.os.Bundle; 
import android.widget.LinearLayout; 

public class RgActivity extends Activity { 
    /** Called when the activity is first created. */ 

    LinearLayout lv1, lv2; 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     lv1=(LinearLayout)findViewById(R.id.lv1); 
     lv2=(LinearLayout)findViewById(R.id.lv2); 

     setColor(Color.BLACK,Color.RED); 

    } 

    public void setColor(int c, int d){ 

     lv1.setBackgroundColor(c); 
     lv2.setBackgroundColor(d); 

    } 


} 

は今、別のプロジェクトで、私は、ライブラリファイルとしてこのRgActivityプロジェクトを使用し、今私は、このSETCOLOR方法は、別のプロジェクトということで使いたいので、新しいプロジェクトに私は図書館として、このプロジェクトをインポートし、次のことをやった:プロジェクトを別のプロジェクトのライブラリとして使用するにはどうすればいいですか?

package com.pack.color; 

import com.apcl.skd.RgActivity; 

import android.app.Activity; 
import android.graphics.Color; 
import android.os.Bundle; 
import android.widget.LinearLayout; 

public class ColorActivity extends RgActivity { 
    /** Called when the activity is first created. */ 
    LinearLayout lv1,lv2; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    lv1=(LinearLayout)findViewById(R.id.lv1); 
    lv2=(LinearLayout)findViewById(R.id.lv2); 

    setColor(Color.BLACK,Color.BLUE); 



} 



} 

私はそれを実行すると、レイアウトで何も変更されません、どのようにこの作品を作る?

答えて

3

lv1lv2ColorActivityに再宣言しました。 setColor()メソッドは、スーパークラスのオブジェクトの色を設定します。

したがって、lv1lv2の宣言を削除すると、ColorActivityが問題を解決するはずです。
なぜあなたの2つのonCreate()方法がまったく同じことをしている:ところで

。スーパークラスでlv1lv2を割り当てていますが、ColorActivityクラスに再割り当てしています。 RgActivityクラスはライブラリの一部である必要があるため、初期化を削除する必要があります。

+0

coloractivity class.Andでlv1とlv2の宣言を削除しました。私のcoloractivityクラスは次のようになります:public class ColorActivity extends RgActivity { /**アクティビティが最初に作成されたときに呼び出されます。 */ \t @Override公共ボイドのonCreate(バンドルsavedInstanceState){ \t // TODO自動生成方法スタブ \t super.onCreate(savedInstanceState)。 \t setContentView(R.layout.main); \t \t \t setColor(Color.BLACK、Color.BLUE); \t \t \t } \t \t } –

+0

しかし、何が変更されました! –

0
setColor(Color.Black,Color.Red) 

lv1.setBackgroundcolor() は4バイトで構成された適切に形成された充填int値、必要とするsetColorを(INT、INT)と等価である:アルファ、赤、緑、青。

あなたは

Log.w("Colordesc",c + "") 

を実行しようとした場合、あなたがintが表示されます-16777216ので、何が必要。また、あなたが必要とされていない冗長なコードの多くを削除することができます

lv1.setBackgroundcolor(0xff0000ff). 

のようなものです。

関連する問題