gpt4 book ai didi

java - 我可以在 oncreate 方法之外使用 setContentView 吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:26:02 25 4
gpt4 key购买 nike

我看到很多人告诉你可以在 oncreate 方法之外设置 setContentView,但我没有找到任何例子。现在,当我尝试使用 setContentView 时,我的应用程序崩溃了。这是我的源代码:

AlarmActivity.java:

package com.alarm.example;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.RelativeLayout;

public class AlarmActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Button buton = new Button(this);
buton.setId(101);
buton.setText("New alarm");
buton.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
RelativeLayout layout1 = new RelativeLayout(this);
layout1.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
layout1.addView(buton);
setContentView(layout1);

Button nou =(Button)findViewById(101);
nou.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
New_ala nou1=new New_ala();
nou1.nou_alarma();
}
});
}
}

New_ala.java:

package com.alarm.example;

public class New_ala extends AlarmActivity{
public void nou_alarma() {
setContentView(R.layout.timepicker);
}
}

时间选择器.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >


<TimePicker
android:id="@+id/timePicker"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />

<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_alignParentBottom="true">

<Button
android:id="@+id/picker_save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Save">
</Button>

<Button
android:id="@+id/picker_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Cancel">
</Button>
</LinearLayout>

</LinearLayout>

更详细地说,我可以在 oncreate 方法中使用 setContentView(R.layout.timepicker) 而不会出现任何问题,所以问题在于 setContentView 在 New_ala.java 类中无法正常工作。谁能帮帮我?

设置intent后的代码:警报 Activity :

package com.alarm.example;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class AlarmActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
startActivity(new Intent(this, NewAlarmActivity.class));
}
}

新警报 Activity :

package com.alarm.example;
import android.os.Bundle;
public class NewAlarmActivity extends AlarmActivity{

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.timepicker);
}
}

最佳答案

您可以在事件 (UI) 线程上运行时随时调用 setContentView。请注意,当您这样做时,您通过调用 findViewById 初始化的任何字段都需要重置。

关于java - 我可以在 oncreate 方法之外使用 setContentView 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8781323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com