如何在android studio上将按钮与下一个屏幕连接

时间:2015-12-13 14:38:15

标签: java android onclicklistener buttonclick

我正在android studio上构建这个应用程序,我正在尝试将我的按钮链接到下一个活动,即登录屏幕。在我使用注册屏幕之前,然后我搞砸了代码现在它只是不起作用当我运行应用程序并单击注册按钮我的应用程序崩溃并关闭,登录按钮甚至没有做任何事情。 下面是主页活动和登录页面活动的代码 首先,我将粘贴按钮所在的frontpage活动代码,然后粘贴其java类,然后我将粘贴loginpage活动,然后粘贴其java类。 有人可以建议我如何从首页上的登录按钮调用登录活动。 非常感谢你提前

首页活动

<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".Login">

<LinearLayout

        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:weightSum="1"
        android:background="@drawable/bg3"
        android:gravity="center|top">


    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Easy Booking"
        android:id="@+id/textView"
        android:textSize="33dp"
        android:gravity="center"
        android:textColor="#0c0c0c"
        />

    <Button

        android:layout_width="98dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp"
        android:text="Login"
        android:id="@+id/btLogin"
        android:onClick="bLogin"
        android:background="@null"
        android:layout_gravity="center_horizontal" />

    <Button
        android:layout_width="108dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="Register"
        android:id="@+id/btRegister"
        android:onClick="bRegister"
        android:background="@null"
        android:layout_gravity="center_horizontal" />

</LinearLayout>

现在是它的java类

public class Frontpage extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_frontpage);
    //OnclickButtonListener();
}
public void bLogin(View view) {

}
public void onButtonClick(View v){

    if (v.getId() == R.id.btRegister) {
        Intent i = new Intent(new Intent(Frontpage.this, Register.class));
        startActivity(i);
    }
}
/**
public void OnclickButtonListener(){
    button = (Button)findViewById(R.id.bRegister);
    button.setOnClickListener(
            new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    Intent intent = new       Intent("/Users/umairfarooq/AndroidStudioProjects/Easybooking/app/src/main/res/layo      ut/activity_register");
                    startActivity(intent);

                }
            }
    );
} /**@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_activity_login, menu);
    return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
 }
*/}

以下是登录活动

   xmlns:tools="http://schemas.android.com/tools"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"                tools:context=".MainActivity"
android:background="#635b5b"
android:orientation="vertical"
 android:layout_width="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Login Form"
        android:textAppearance="?android:textAppearanceLarge"
        android:textStyle="bold"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="10dp"
        />
    <EditText
        android:layout_width="250dp"
        android:layout_height="wrap_content"
        android:hint="Email"
        android:id="@+id/etUsername"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="70dp"
        />
    <EditText
        android:layout_width="250dp"
        android:layout_height="wrap_content"
        android:hint="Password"
        android:id="@+id/etPassword"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="20dp"
        android:inputType="textPassword"
        />
    <Button
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:text="Login"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="10dp"
        android:onClick="userLogin"
        />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Register Now"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="50dp"
        android:onClick="userReg"
        />
</LinearLayout>

现在登录java类

package com.example.umairfarooq.easybooking;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
public class Login extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
}
public void buttonOnClick (View v){
}
}

2 个答案:

答案 0 :(得分:1)

  

当我运行应用程序并单击注册按钮时,我的应用程序崩溃了   并关闭

这是因为这个按钮:

<Button
    android:layout_width="108dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:text="Register"
    android:id="@+id/btRegister"
    android:onClick="bRegister"
    android:background="@null"
    android:layout_gravity="center_horizontal" />
您的FrontPage活动中的

需要FrontPage.java类中具有签名public void bRegister(View view)的方法。由于你没有这种方法,它会崩溃。

  

登录按钮甚至不做任何事情

原因是,这个按钮

<Button

    android:layout_width="98dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="50dp"
    android:text="Login"
    android:id="@+id/btLogin"
    android:onClick="bLogin"
    android:background="@null"
    android:layout_gravity="center_horizontal" />
您的Frontpage活动中的

需要在Frontpage.java类中使用名为public void bLogin(View view)的方法。虽然该方法存在,但您没有任何代码,因此它没有做任何事情。

您需要在bLogin方法中添加适当的代码,以便您的登录按钮开始运行,甚至在此之前添加bRegister方法,以便您的注册按钮开始工作。

希望这会对你有所帮助。

答案 1 :(得分:1)

问题是您的活动不包含您为按钮“android:onClick属性设置的方法。”

对于Frontpage活动正在使用的布局,您可以将btRegister按钮的android:onClick属性更改为android:onClick="onButtonClick",也可以在其中创建public void bRegister(View v){...}方法活性。

对于Login活动,布局有两个按钮,其android:onClick属性设置为userReguserLogin,您可以在活动中创建这些方法或更改这两个属性值均为buttonOnClick