Java 引入onClick函数会导致编译器错误
我想做一个功能,我可以链接到Android Studio中的一个按钮。但是Android Studio IDE给了我缺失的)和;当我想将它链接到onclick事件时,可以找到错误和函数 OefenActivity.java:Java 引入onClick函数会导致编译器错误,java,android,scope,Java,Android,Scope,我想做一个功能,我可以链接到Android Studio中的一个按钮。但是Android Studio IDE给了我缺失的)和;当我想将它链接到onclick事件时,可以找到错误和函数 OefenActivity.java: package com.example.rick2.rekentuin_native; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.vi
package com.example.rick2.rekentuin_native;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class OefenenActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
int index = 0;
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_oefenen);
String sessionId = getIntent().getStringExtra("EXTRA_SESSION_ID");
TextView tv1 = findViewById(R.id.textView6);
tv1.setText(sessionId);
int intArray[] = new int[]{1,2,3,4,5,6,7,8,9,10};
TextView tv2 = findViewById(R.id.textView5);
tv2.setText(Integer.toString(intArray[index]));
public void CheckAns(View view) {
EditText edit = findViewById(R.id.editText4);
Integer result = Integer.parseInt(edit.getText().toString());
int number1 = Integer.parseInt(sessionId);
if(result == intArray[index] + number1) {
if(index < 10) {
index++;
tv2.setText(Integer.toString(intArray[index]));
}
}
}
}
}
您的函数应该在类中,而不是在onCreate方法中。onCreate本身就是一种方法。那么,像下面这样做吧
package com.example.rick2.rekentuin_native;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class OefenenActivity extends AppCompatActivity {
int index = 0;
int intArray[] = new int[]{1,2,3,4,5,6,7,8,9,10};
TextView tv2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_oefenen);
String sessionId = getIntent().getStringExtra("EXTRA_SESSION_ID");
TextView tv1 = findViewById(R.id.textView6);
tv1.setText(sessionId);
tv2 = findViewById(R.id.textView5);
tv2.setText(Integer.toString(intArray[index]));
}
public void CheckAns(View view) {
EditText edit = findViewById(R.id.editText4);
Integer result = Integer.parseInt(edit.getText().toString());
int number1 = Integer.parseInt(sessionId);
if (result == intArray[index] + number1) {
if (index < 10) {
index++;
tv2.setText(Integer.toString(intArray[index]));
}
}
}
}
package com.example.rick2.rekentuin_native;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.EditText;
导入android.widget.TextView;
公共类OefenActionality扩展了应用程序活动{
int指数=0;
int intArray[]=新int[]{1,2,3,4,5,6,7,8,9,10};
文本视图tv2;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_oefenen);
String sessionId=getIntent().getStringExtra(“额外会话ID”);
TextView tv1=findViewById(R.id.textView6);
tv1.setText(sessionId);
tv2=findViewById(R.id.textView5);
tv2.setText(Integer.toString(intArray[index]);
}
公共无效检查(视图){
EditText edit=findviewbyd(R.id.editText4);
整数结果=Integer.parseInt(edit.getText().toString());
int number1=Integer.parseInt(sessionId);
如果(结果==阵列[索引]+编号1){
如果(指数<10){
索引++;
tv2.setText(Integer.toString(intArray[index]);
}
}
}
}
您的函数应该在类中,而不是在onCreate方法中。onCreate本身就是一种方法。那么,像下面这样做吧
package com.example.rick2.rekentuin_native;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class OefenenActivity extends AppCompatActivity {
int index = 0;
int intArray[] = new int[]{1,2,3,4,5,6,7,8,9,10};
TextView tv2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_oefenen);
String sessionId = getIntent().getStringExtra("EXTRA_SESSION_ID");
TextView tv1 = findViewById(R.id.textView6);
tv1.setText(sessionId);
tv2 = findViewById(R.id.textView5);
tv2.setText(Integer.toString(intArray[index]));
}
public void CheckAns(View view) {
EditText edit = findViewById(R.id.editText4);
Integer result = Integer.parseInt(edit.getText().toString());
int number1 = Integer.parseInt(sessionId);
if (result == intArray[index] + number1) {
if (index < 10) {
index++;
tv2.setText(Integer.toString(intArray[index]));
}
}
}
}
package com.example.rick2.rekentuin_native;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.EditText;
导入android.widget.TextView;
公共类OefenActionality扩展了应用程序活动{
int指数=0;
int intArray[]=新int[]{1,2,3,4,5,6,7,8,9,10};
文本视图tv2;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_oefenen);
String sessionId=getIntent().getStringExtra(“额外会话ID”);
TextView tv1=findViewById(R.id.textView6);
tv1.setText(sessionId);
tv2=findViewById(R.id.textView5);
tv2.setText(Integer.toString(intArray[index]);
}
公共无效检查(视图){
EditText edit=findviewbyd(R.id.editText4);
整数结果=Integer.parseInt(edit.getText().toString());
int number1=Integer.parseInt(sessionId);
如果(结果==阵列[索引]+编号1){
如果(指数<10){
索引++;
tv2.setText(Integer.toString(intArray[index]);
}
}
}
}
将此函数移到onCreate()之外。另外,吹毛求疵:其中一些不是警告,而是错误。不会改变任何东西,但值得注意。@Zoe感谢您的反馈将此函数移到onCreate()之外。另外,吹毛求疵:其中有些不是警告,而是错误。不会改变任何东西,但值得注意。@Zoe感谢您的反馈几种语言允许函数中包含函数。Java不是其中之一,直到你说“一个方法怎么可能包含另一个方法/函数”之前,我几乎投了赞成票。方法绝对可以做到这一点(lambdas)。哈哈,很抱歉,我也忘记了lambdas@BakonJarser我想OP是指直接申报。您不能声明一个accessmodifier returntype
,但是可以声明lambda和内部类,但它们在技术上是变量,而不是函数。有几种语言允许函数中包含函数。Java不是其中之一,直到你说“一个方法怎么可能包含另一个方法/函数”之前,我几乎投了赞成票。方法绝对可以做到这一点(lambdas)。哈哈,很抱歉,我也忘记了lambdas@BakonJarser我想OP是指直接申报。您不能声明一个accessmodifier returntype
,但lambda和内部类显然可以声明,但它们在技术上是变量,而不是函数。
package com.example.rick2.rekentuin_native;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class OefenenActivity extends AppCompatActivity {
int index = 0;
int intArray[] = new int[]{1,2,3,4,5,6,7,8,9,10};
TextView tv2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_oefenen);
String sessionId = getIntent().getStringExtra("EXTRA_SESSION_ID");
TextView tv1 = findViewById(R.id.textView6);
tv1.setText(sessionId);
tv2 = findViewById(R.id.textView5);
tv2.setText(Integer.toString(intArray[index]));
}
public void CheckAns(View view) {
EditText edit = findViewById(R.id.editText4);
Integer result = Integer.parseInt(edit.getText().toString());
int number1 = Integer.parseInt(sessionId);
if (result == intArray[index] + number1) {
if (index < 10) {
index++;
tv2.setText(Integer.toString(intArray[index]));
}
}
}
}