我对Android开发相当新,作为我的第一个应用程序,我想制作一个手电筒应用程序。因此,我想要做的第一步是在中心创建一个按钮,使其在每次点击后交替地将其文本更改为“ON”和“OFF”。我制作了java代码,但Android工作室给了我这个错误:'@Override'不适用于字段。这是我的java代码:
package com.danielfernandzz.flashlight;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
@Override
public boolean switchState = false;
Button switchbutton = (Button) findViewById(R.id.Switch);
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void Switched(View v){
if(!switchState){
switchState = true;
switchbutton.setText("OFF");
}else{
switchState = false;
switchbutton.setText("ON");
}
}
}
这是我的xml代码(如果你需要它):
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
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"
tools:context="com.danielfernandzz.flashlight.MainActivity">
<Button
android:id="@+id/Switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginTop="8dp"
android:onClick="Switched"
android:text="ON"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
我尝试评论@Override并没有出现错误。但是当我运行应用程序时,它崩溃了,所以我认为应用程序崩溃了,因为@Override不在那里? 我不明白为什么会发生这种情况,我已经看到了其他问题,但他们的错误是不同的。 注意:我使用的是最新版本的Android Studio 3.0
答案 0 :(得分:0)
根据@Jerrol,您可以在onCreate之前放置@Override。没有必要在变量初始化之前放置它。你能否给我们删除后得到的崩溃日志。
答案 1 :(得分:0)
试试这个
1.在switchbutton = (Button) findViewById(R.id.Switch);
方法
onCreate()
2. @Override
之前onCreate()
示例代码
public class MainActivity extends AppCompatActivity {
public boolean switchState = false;
Button switchbutton ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
switchbutton = (Button) findViewById(R.id.Switch);
}
public void Switched(View v){
if(!switchState){
switchState = true;
switchbutton.setText("OFF");
}else{
switchState = false;
switchbutton.setText("ON");
}
}
}