使用android(Eclipse)将按钮链接到页面 - 无法使其工作

时间:2014-10-27 00:56:05

标签: android

我是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">

如果您还有其他需要,请告诉我

有什么想法吗?

谢谢:)

2 个答案:

答案 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关于如何实现您想要做的事情的非常好的教程。如果没有其他答案有帮助,使用本教程重新启动可能会帮助您取得成功。我曾经多次测试过他的代码并且有效。