Java 如何在android studio中添加按钮
我试图在android studio中为我的应用程序添加一个按钮,我跟踪了一段youtube视频,但每次我运行它时,它都会关闭。我不知道为什么会发生这种情况,也不知道如何让按钮工作。如果有人能帮忙,那就太好了Java 如何在android studio中添加按钮,java,android,Java,Android,我试图在android studio中为我的应用程序添加一个按钮,我跟踪了一段youtube视频,但每次我运行它时,它都会关闭。我不知道为什么会发生这种情况,也不知道如何让按钮工作。如果有人能帮忙,那就太好了 public class MainActivity extends Activity { Draw draw; @Override protected void onCreate(Bundle savedInstanceState) { super
public class MainActivity extends Activity {
Draw draw;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout l = new LinearLayout(this);
l.setOrientation(LinearLayout.VERTICAL);
setContentView(l);
l.addView(new Draw(this));
setContentView(R.layout.activity_main);
draw = new Draw(this);
draw.setBackgroundColor(Color.BLUE);
setContentView(draw);
setUpBlockBtn();
}
private void setUpBlockBtn(){
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();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
您正在使用setContentView 3次,为什么??如果您在activity_main.xml中定义了按钮,则将其用作contentview。在程序中,当调用setUpBlockBtn()访问按钮对象时,必须设置正确的contentview,在本例中,它应该是activity_main.xml。再次在线setContentView处(绘制);您正在更改无法实例化按钮findViewById(R.id.btnBlock)的按钮;所以你的应用程序正在崩溃在短集正确的内容视图中您有两个选项: 1-创建包含按钮的xml布局文件: 在res/layout目录中创建一个新的布局文件作为
activity\u main
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Action!"
/>
</LinearLayout>
2-将按钮动态添加到活动中:
public class MainActivity extends Activity {
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
setUpButton();
}
private void setUpButton() {
// Do something with your button
}
}
公共类MainActivity扩展了活动{
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
// button = (Button) findViewById(R.id.button);
button = new Button(this);
// set button's properties
setContentView(button);
setUpButton();
}
private void setUpButton() {
// Do something with your button
}
}
有一种更简单的方法可以添加按钮 创建一个空白xml文件 在文本中添加
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
这将创建一个按钮将您的logcat输出放在这里,以了解错误?但可能是因为您使用了setContentView(l)而发生这种情况吗;两次。可能是Ok的重复谢谢,但是我怎么做,我不太了解它的功能和工作原理?在activity_main.xml中定义按钮,id为btnBlock。和
@重写受保护的void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button addBlockButton=(Button)findViewById(R.id.btnBlock);addBlockButton.setOnClickListener(新视图.OnClickListener(){@Override public void onClick(视图v){Toast.makeText(getApplicationContext(),“Button Clicked”,Toast.LENGTH_SHORT.show();});}
googleit获取基本教程:)