如何在 Android 中点击时设置 xml 的背景

How do I set the background of an xml on click in Android

这是我想要做的:我点击一个打开的按钮,activity 定期改变背景。

我的代码如下所示:

 RelativeLayout relativeLayout;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.picscreen);

Thread background = new Thread(){
    public void run(){
        try {
            sleep(2000);

            relativeLayout = new RelativeLayout(this);

            relativeLayout.setBackgroundResource(R.drawable.img10); 
            setContentView(relativeLayout);

        }catch (Exception e){

        }
    }
};
    background.start();
}protected void onDestroy(){
super.onDestroy();

}

错误说相对布局不能应用于线程。我做错了什么?

The error says the relative Layout cannot ba applied to a thread

因为run方法上下文用于创建RelativeLayout布局对象和调用setContentView

您应该使用 YourActivityName.this 而不是 this 来调用 setContentView 方法并创建 RelativeLayout 布局对象。

建议:

当使用当前代码的应用程序 运行 时,应用程序将崩溃并显示以下消息:

Only the original thread that created a view hierarchy can touch its views.

所以在特定时间后使用runOnUiThreadHandler(而不是线程)来完成一些任务

你可以使用

runOnUiThread(new Runnable(){
    //your code
});

在你的 运行 方法中,在此之前你必须调用 looper.prepare() 我想,但我不知道为什么你每次都在 [=17= 中创建一个新的 RealtiveLayout ] 方法,它很蹩脚。您可以每次都使用相同的 RelativeLayout,然后您就不必调用方法 setContentView()。 我建议你好好看看 android 基础教程。