Kuy*_*uya -4 android android-layout android-studio
这是我的第一个Android应用程序.我正在尝试做一些应该相对简单的事情,但我似乎无法让它发挥作用.
AndroidManifest.xml中
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.project1.project1">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:icon="@mipmap/icon_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/icon_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".LoginActivity">
<intent-filter>
<action android:name="android.intent.action.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
login_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/loginSignup1Background"
tools:context=".LoginActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="vertical">
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginLeft="16dp"
android:text="@string/login_title"
android:textAppearance="@style/TextAppearance.AppCompat.Headline" />
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
android:contentDescription="Login Icon"
app:srcCompat="@mipmap/ic_login_black" />
<EditText
style="@style/LoginSignUp1Input"
android:hint="@string/hint_email"
android:inputType="textEmailAddress" />
<EditText
style="@style/LoginSignUp1Input"
android:hint="@string/hint_pw"
android:inputType="textPassword" />
<Button
android:id="@+id/btnLogin"
style="@style/ButtonOrange"
android:layout_width="match_parent"
android:layout_height="46dp"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:layout_marginTop="30dp"
android:onClick="onClick"
android:text="@string/btn_login"
android:textAllCaps="false"
android:textColor="@android:color/white" />
</LinearLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
LoginActivity.java
package com.project1.project1;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;
public class LoginActivity extends AppCompatActivity implements View.OnClickListener {
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.btnLogin:
Toast.makeText(this, "Login button clicked!", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想要发生的是......当点击"登录"按钮时,我得到"点击登录按钮!"的短时间消息.
发生了什么...应用关闭错误"遗憾的是Project1已停止".
我试过的......
清单文件中的不同代码变体:
<activity
android:name=".LoginActivity">
<intent-filter>
<action android:name="android.intent.action.DEFAULT" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
和
<activity
android:name=".LoginActivity">
</activity>
Run Code Online (Sandbox Code Playgroud)
我很感激能得到的任何指导.
在任何评论之前......是的,我花了很多时间搜索StackOverflow并且无法找到解决方案.
编辑:
堆栈跟踪
04-13 17:50:54.162 22926-22926/com.project1.project1 D/AndroidRuntime: Shutting down VM
04-13 17:50:54.163 22926-22926/com.project1.project1 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.project1.project1, PID: 22926
java.lang.IllegalStateException: Could not find method onClick(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'btnLogin'
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:327)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284)
at android.view.View.performClick(View.java:5205)
at android.view.View$PerformClick.run(View.java:21162)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5452)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:762)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:652)
04-13 17:55:54.278 22926-22926/com.project1.project1 I/Process: Sending signal. PID: 22926 SIG: 9
Run Code Online (Sandbox Code Playgroud)
最新的崩溃日志
04-13 18:47:19.845 30895-30895/com.project1.project1 D/AndroidRuntime: Shutting down VM
04-13 18:47:19.850 30895-30895/com.project1.project1 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.project1.project1, PID: 30895
java.lang.IllegalStateException: Could not find method onClick(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'btnLogin'
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:327)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284)
at android.view.View.performClick(View.java:5205)
at android.view.View$PerformClick.run(View.java:21162)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5452)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:762)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:652)
Run Code Online (Sandbox Code Playgroud)
android:onClick="onClick"从你的Button.删除login_layout.xml
<Button
android:id="@+id/btnLogin"
style="@style/ButtonOrange"
android:layout_width="match_parent"
android:layout_height="46dp"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:layout_marginTop="30dp"
android:text="@string/btn_login"
android:textAllCaps="false"
android:textColor="@android:color/white" />
Run Code Online (Sandbox Code Playgroud)
编辑
在你的下面进行以下更改 LoginActivity
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;
public class LoginActivity extends AppCompatActivity implements View.OnClickListener {
Button loginButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_layout);
loginButton=findViewById(R.id.btnLogin);
loginButton.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.btnLogin:
Toast.makeText(this, "Login button clicked!", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
170 次 |
| 最近记录: |