我的按钮没有打开新活动,而是使应用程序崩溃。我什至从 http://www.androidbegin.com/tutorial/android-button-click-new-activity-example/ 复制了源代码,并尝试自己运行它,但应用程序仍然崩溃。我似乎找不到问题。
public class MainActivity extends Activity {
Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the view from activity_main.xml
setContentView(R.layout.activity_main);
// Locate the button in activity_main.xml
button = (Button) findViewById(R.id.MyButton);
// Capture button clicks
button.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
// Start NewActivity.class
Intent myIntent = new Intent(MainActivity.this,
secondActivity.class);
startActivity(myIntent);
}
});
}
}
XML按钮
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/MyButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Button" />
答案 0 :(得分:1)
您的代码很好!
此行为最可能的原因是secondActivity
未在清单中注册。检查是否存在,然后重试。如果不是,只需在application
文件的manifest.xml
标记内添加下面的行即可注册它。
<activity android:name=".secondActivity" />
重新运行代码,然后重试。这次最有可能工作。
我希望这会有所帮助。.编码愉快!
答案 1 :(得分:0)
放置以下代码段:
public class MainActivity extends Activity {
Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the view from activity_main.xml
setContentView(R.layout.activity_main);
// Locate the button in activity_main.xml
button = (Button) findViewById(R.id.MyButton);
// Capture button clicks
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
// Start NewActivity.class
Intent myIntent = new Intent(MainActivity.this,
secondActivity.class);
startActivity(myIntent);
}
});
}
}
在manifest.xml中注册secondActivity
<activity
android:name=".secondActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize" />
这可能对您有帮助
答案 2 :(得分:0)
根据您提供的教程链接,第二个活动的名称为NewActivity.class。在您的代码中,好像您已将其修改为secondActivity.class。
因此请确保也将其显示
<activity android:name=".secondActivity" >
</activity>
始终对类使用PascalCase,对方法始终使用camelCase