我是Android开发的新手,也是这个网站的新手! 我已经完成了一些教程等工作,目前我正在研究一个项目,并通过对类似问题的其他答案进行了很好的审视,但却找不到我正在寻找的东西(但是有很多好的建议) !)
我正在尝试将主屏幕上的按钮链接到各个页面。我使用手机而不是模拟器,但每次点击按钮,应用程序都会死掉......你能帮我吗?
这是我对button1的主屏幕代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Declaring and defining the buttons used
Button student1 = (Button) findViewById(R.id.button1);
// Setting the onClickListener for button1
student1.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
//calling the page1 function
page1(view);
}
});
这是page1函数:
public void page1(View view) {
Intent intent = new Intent(this, Page1.class);
startActivity(intent);
}
以下是Page1类文件的代码:
public class Page1 extends ActionBarActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.page_1);
}
}
这是布局文件的代码:(page_1.xml)
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="shannon.white.finalyear.DisplayMessageActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content">
如果您还有其他需要,请告诉我
有什么想法吗?
谢谢:)
答案 0 :(得分:0)
您的编码看起来是正确的。
接下来要检查的是查看你的AndroidManifest.xml
文件,以确保你已经将活动添加到它,以便android OS知道它存在。你这样添加它:
<activity android:name="Page1" />
如果您的活动位于另一个包中,然后是在清单文件中声明的那个包,那么您需要在“名称”中指定完整的包,如下所示:
<activity android:name="some.other.package.name.Page1" />
这就是我所能提供的所有代码。如果你只是开始另一个Page1.class
的活动,那么你的代码看起来是正确的,你可能会错过我上面所述的清单声明。
答案 1 :(得分:0)
尝试移动以下代码
// Declaring and defining the buttons used
Button student1 = (Button) findViewById(R.id.button1);
// Setting the onClickListener for button1
student1.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
}
在page1函数下面,所以你的代码如下所示:
public void page1(View view) {
Button student1 = (Button) findViewById(R.id.button1); // Declaring and defining the buttons used
student1.setOnClickListener(new View.OnClickListener() { // Setting the onClickListener for button1
@Override
public void onClick(View v) {
startActivity(intent);
Intent intent = new Intent(this, Page1.class);
}
}
}
你的onCreate看起来像这样:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
page1(view); // NOTE I'm now declaring it on the onCreate instead of onClick
}
如果这没有帮助,那么您的代码仍然看起来更干净。可能只是我的OCD ......
This是Mkyong关于如何实现您想要做的事情的非常好的教程。如果没有其他答案有帮助,使用本教程重新启动可能会帮助您取得成功。我曾经多次测试过他的代码并且有效。