Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 引入onClick函数会导致编译器错误_Java_Android_Scope - Fatal编程技术网

Java 引入onClick函数会导致编译器错误

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

我想做一个功能,我可以链接到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.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]));
            }
        }
    }

}