gpt4 book ai didi

android - 以编程方式将按钮添加到布局

转载 作者:IT老高 更新时间:2023-10-28 21:40:25 25 4
gpt4 key购买 nike

我在向用 XML 创建的布局添加按钮时遇到问题。这是我想要实现的目标:

//some class
else {
startActivity(new Intent(StatisticsScreen.this, ScreenTemperature.class));
}
////

//ScreenTemperatureClass
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

//this is where I call another class that
//displays a nice graph
setContentView(new GraphTemperature(getApplicationContext()));

}

我想在这个新屏幕上添加一个 Button 以便它出现在图表下方。我尝试创建一个 LinearLayout View ,然后创建一个 Button 并将其添加到此 View 中,但我只得到 NullPointerExceptions..

任何帮助将不胜感激。谢谢

编辑#1

这是我尝试使用的创建 NullPointerException 和“强制关闭”的方法:

Button buybutton;
LinearLayout layout;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(new GraphTemperature(getApplicationContext()));

layout = (LinearLayout) findViewById(R.id.statsviewlayout);
Button buyButton = new Button(this);
buyButton.setText(R.string.button_back);
buyButton.setLayoutParams(new LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
layout.addView(buyButton);

}

这是 logcat 错误:

ERROR/AndroidRuntime(293): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.weatherapp/com.weatherapp.ScreenTemperature}: java.lang.NullPointerException
ERROR/AndroidRuntime(293): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
ERROR/AndroidRuntime(293): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
ERROR/AndroidRuntime(293): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
ERROR/AndroidRuntime(293): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)

logcat 中有更多行与此错误有关,不确定是否需要?

编辑#2

所以我尝试了 bhups 方法:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GraphTemperature GT = new GraphTemperature(getApplicationContext());
layout = (LinearLayout) findViewById(R.id.statsviewlayout);
Button buyButton = new Button(this);
buyButton.setText(R.string.button_back);
buyButton.setLayoutParams(new LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
layout.addView(GT); // line 27
layout.addView(buyButton);
setContentView(layout);
}

这个方法产生了和上面一样的logcat错误,NullPointerException,说明它和line no有关。 27 是 layout.addView 行代码。有任何想法吗?再次感谢

最佳答案

如果您刚刚在 setContentView 内的 onCreate() 开头包含了一个布局文件,并希望通过此布局以编程方式添加新元素,请尝试以下操作:

ViewGroup linearLayout = (ViewGroup) findViewById(R.id.linearLayoutID);

然后您可以创建一个新的 Button 例如并添加它:

Button bt = new Button(this);
bt.setText("A Button");
bt.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
linerLayout.addView(bt);

关于android - 以编程方式将按钮添加到布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4907609/

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