Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.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
Android Studio:更改java类中的EditText字段_Java_Android_Android Studio_Kotlin - Fatal编程技术网

Android Studio:更改java类中的EditText字段

Android Studio:更改java类中的EditText字段,java,android,android-studio,kotlin,Java,Android,Android Studio,Kotlin,我有一个带有文本标签的android应用程序,我想在用户按下按钮时更改它(这可以在myapp.kt文件中完成)。我想学习如何在常规java文件(Simplejava.java)中修改此文本。问题是,当我试图从Simplejava.java文件调用editText1标签时,它会出现以下错误:无法解析方法“getView()”。 我正在使用android studio 3.2.1 myapp.kt package com.example.don.myapp import android.suppo

我有一个带有文本标签的android应用程序,我想在用户按下按钮时更改它(这可以在myapp.kt文件中完成)。我想学习如何在常规java文件(Simplejava.java)中修改此文本。问题是,当我试图从Simplejava.java文件调用
editText1
标签时,它会出现以下错误:
无法解析方法“getView()”
。 我正在使用android studio 3.2.1

myapp.kt

package com.example.don.myapp

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button

class Connectors : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_connectors)

        val RunButton = findViewById<View>(R.id.button1) as Button
        val myjava = Simplejava()

        RunButton.setOnClickListener({ //When the button is pressed
            myjava.MainStart();//Calling the java file
        })
    }
}

Simplejava.class是一个不继承任何活动或视图的类,它没有名为getView()的方法。要解决此问题,您需要将活动传递给类的构造函数,或将其传递给方法,如下所示:

SimpleJava.class

package com.example.don.myapp;

import android.widget.EditText;

public class Simplejava {

public void MainStart(Activity activity)
{
    System.out.println("Hello");

    EditText changetext = (EditText) activity.findViewById(R.id.editText1);
    changetext.setText("Hello");
}
}

而在myapp.kt
myjava.MainStart中(这个)而不是
myjava.MainStart()

这是因为只有与活动相关的类才能访问布局的视图,所以只需将上下文传递给该方法并尝试使用上下文访问视图谢谢您给我展示了一个示例。我真的很感谢你的帮助。
package com.example.don.myapp;

import android.widget.EditText;

public class Simplejava {

public void MainStart(Activity activity)
{
    System.out.println("Hello");

    EditText changetext = (EditText) activity.findViewById(R.id.editText1);
    changetext.setText("Hello");
}
}