3

レイアウト (色など) のみを変更して既存のアクティビティを拡張することはできますか?

私は共有ライブラリを使用しているため、他の人が使用しているため、アクティビティを変更するべきではありません。

4

5 に答える 5

2

その新しいアクティビティをマニフェストに配置してから、意図の解決が子クラスに送られるようにする必要があります。アクティビティを拡張して、これを修正せずに呼び出すことができるようになるだけではありません (少なくとも私はそうは思いません)。

Java または xml で背景色を設定することもできます。

于 2012-06-11T13:46:58.477 に答える
1

はい。可能です。単語を使用するだけ extendsです。

uに2つのアクティビティActivity1と2番目のActivity2がある場合。Uは使用できますActivity2 extends Activity1 次にuはのプロパティを使用できますActivity1.

于 2012-06-11T13:45:28.793 に答える
1

はい、次のように実行できます。

あなたの共通の活動:

public class BaseActivity extends Activity {
 ..
 ..
}

あなたの特定の活動:

public class YourActivity extends BaseActivity {
 ..
  @Override
    public void onCreate(Bundle savedInstanceState) {
        //call the base class constructor FIRST 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.new_layout); //then change the layout
     }
}
于 2012-06-11T13:48:47.830 に答える
1

はい、それを拡張することができます.onCreateメソッドをオーバーライドし、カスタムレイアウトでsetContentViewメソッドを呼び出すことで、レイアウトを変更できます.

于 2012-06-11T13:46:09.803 に答える
0

はい、アクティビティを拡張できます。デモは次のとおりです。

    package com.test.intentdemo; 

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

public class intentDemo extends Activity { 
    public static final String TAG="MyActivity"; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        RelativeLayout lLayout = (RelativeLayout) findViewById(R.layout.the_id); 
        lLayout.setBackgroundColor(Color.parseColor("#000000")); 
    } 
} 

            if (Log.isLoggable(TAG,0)) 
            { 
                Log.e(TAG,"ERROR BEFORE"); 
                Log.i(TAG,"INFO BEFORE"); 
                Log.d(TAG,"DEBUG BEFORE"); 

                    lLayout.setBackgroundColor(Color.parseColor("#000000")); 
                    //SystemClock.sleep(2000); 
                    try 
                    { 
                    Thread.currentThread(); 
                    Thread.sleep(2000); 
                    } 
                    catch (Exception e) 
                    { 
                    //e.message(); 
                    } 


                Log.e(TAG,"ERROR AFTER"); 
                Log.i(TAG,"INFO AFTER"); 
                Log.d(TAG,"DEBUG AFTER"); 
            } 
        } 
    } 

お役に立てれば :)

于 2012-06-11T13:55:04.660 に答える