Android 扩展活动仅更改布局

Android 扩展活动仅更改布局,android,android-layout,Android,Android Layout,是否可以扩展现有活动,仅更改其布局(例如颜色) 因为我正在使用一个共享库,我不应该修改该活动,因为其他人正在使用它。是的。有可能的话,只需使用单词扩展即可 如果你有两个活动 活动1和第二个活动2。 你可以使用活动2扩展活动1 然后,您可以使用Activity1的属性。是的,您可以对其进行扩展,通过覆盖onCreate方法并通过自定义布局在其中调用setContentView方法,您将更改其布局 您必须将该新活动放入清单中,然后确保意向解析转到您的子类。您不仅能够扩展活动并调用它,而无需修复此问题

是否可以扩展现有活动,仅更改其布局(例如颜色)


因为我正在使用一个共享库,我不应该修改该活动,因为其他人正在使用它。

是的。有可能的话,只需使用单词
扩展即可

如果你有两个活动 活动1和第二个活动2。 你可以使用活动2扩展活动1
然后,您可以使用Activity1的属性。

是的,您可以对其进行扩展,通过覆盖onCreate方法并通过自定义布局在其中调用setContentView方法,您将更改其布局

您必须将该新活动放入清单中,然后确保意向解析转到您的子类。您不仅能够扩展活动并调用它,而无需修复此问题(至少我不这么认为)


您也可以用java或xml设置背景颜色。

是的,可以这样完成:

您的共同活动:

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
     }
}
您的具体活动:

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
     }
}

是的,您可以扩展您的活动,这是一个演示:

    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"); 
            } 
        } 
    } 

希望这有帮助:)

我正要发布同样的内容。我知道extends,问题是我想更改布局,但是super.onCreate()会生成自己的布局。。。我可以只更改元素的颜色和大小而不重新声明它们吗?这是我的想法,但当我调用setContentView时,它会删除super.onCreate()生成的所有内容。我通过java代码更改了背景和按钮的颜色。但是,如果我真的想更改布局(添加装饰、添加按钮/功能、更改重力ecc),我是否必须使用java代码来完成所有工作,还是可以使用不同的xml而不丢失原始构造函数中的所有代码?无论如何,谢谢你的帮助。我不相信你可以从两个不同的XML文件继承(至少我还没见过)。但是,我建议您用XML创建一个样式,然后通过一行java代码将其应用于视图。这样,您就不用修改库的XML,也可以用XML声明属性。是否有办法将代码保存在原始的onCreate()中,这样,如果父类发生更改,我的父类也会发生更改(我希望唯一的区别是图形)