我正在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){
}
}
答案 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
属性设置为userReg
和userLogin
,您可以在活动中创建这些方法或更改这两个属性值均为buttonOnClick
。