setContentView在android中如何工作?
问题描述:
我想在我的android应用程序上显示一个按钮,但每次运行应用程序时它都会崩溃。我意识到这是因为我多次使用setContentView?我不明白它是如何工作的,不明白我如何解决这个问题,所以我的按钮将显示。我的代码在下面。setContentView在android中如何工作?
public class MainActivity extends Activity {
Draw draw;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
draw = new Draw(this);
draw.setBackgroundColor(Color.BLUE);
setContentView(draw);
LinearLayout l = new LinearLayout(this);
l.setOrientation(LinearLayout.VERTICAL);
setContentView(l);
l.addView(new Draw(this));
//setContentView(R.layout.activity_main);
setUpBlockBtn();
}
private void setUpBlockBtn(){
setContentView(R.layout.activity_main);
Button addBlockButton = (Button)findViewById(R.id.btnBlock);
addBlockButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("DemoButtonApp", "you clicked the button");
//finish();
}
});
}
答
您尝试访问android xml布局中的Button,但不在Activity中设置此布局。
将您的按钮activity_main.xml并在您的活动中使用此按钮。
感谢
答
您可以创建一个多个布局,并添加绘图和线性布局,该布局。
就是这样。
LinearLayout l1=new LinearLayout(this);
l1.setOrientation(LinearLayout.VERTICAL);
l1.addView(draw);
l1.addView(l2) // your linearLayout.
setContentView(l1)
请记住,您不能多次使用setContentView。 应该有包含子视图和其他布局的顶层布局,然后您可以将该布局添加到您的活动中。
你为什么不把你的按钮添加到布局?什么是“绘制”? – SqueezyMo