我正在尝试在我的Android应用程序上显示一个按钮,但每次我运行该应用程序时都会崩溃。我意识到这是因为我多次使用setContentView?我不明白它是如何工作的,并且不明白我如何解决这个问题所以我的按钮会显示。我的代码如下。
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();
}
});
}
答案 0 :(得分:0)
您尝试从android xml布局访问Button但您没有在Activity中设置此布局。
按下activity_main.xml按钮并在您的活动中使用此按钮。
由于
答案 1 :(得分:0)
您可以再创建一个布局,并将Draw和Linear布局添加到该布局中。
像这样。
LinearLayout l1=new LinearLayout(this);
l1.setOrientation(LinearLayout.VERTICAL);
l1.addView(draw);
l1.addView(l2) // your linearLayout.
setContentView(l1)
请记住,您不能多次使用setContentView。 应该有顶级布局,包括子视图和其他布局,然后您可以将该布局添加到您的活动。