Android Studio:更改从java类中提交的EditText



我有一个带有文本标签的android应用程序,当用户按下按钮时,我想更改它(这可以在myapp.kt文件中完成(。我想学习如何在常规java文件(Simplejava.java(中修改此文本。问题是,当我试图从Simplejava.java文件调用editText1标签时,它会给出以下错误:cannot resolve method 'getView()'。我正在使用安卓工作室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.java

package com.example.don.myapp;
import android.widget.EditText;
public class Simplejava {
public void MainStart()
{
System.out.println("Hello");//this works
//Following code doesn't work. it says, cannot resolve method 'getView()'
EditText changetext = (EditText) getView().findViewById(R.id.editText1);
changetext.setText("Hello");
}
}
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.ktmyjava.MainStart(this);而不是myjava.MainStart();

最新更新