【问题标题】:Android Studio: Change EditText filed from a java classAndroid Studio:从 java 类更改 EditText 字段
【发布时间】:2018-11-25 18:59:03
【问题描述】:

我有一个带有文本标签的 android 应用程序,我想在用户按下按钮时更改它(这可以在 myapp.kt 文件中完成)。我想了解如何在常规 java 文件 (Simplejava.java) 中修改此文本。问题是,当我尝试从 Simplejava.java 文件中调用 editText1 标签时,会出现以下错误:cannot resolve method '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.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");
    }
}

【问题讨论】:

  • 这是因为只有和activity相关的类才能访问一个layout的views,所以只要把context传给方法,尝试使用context访问view

标签: java android android-studio kotlin


【解决方案1】:

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(this); 而不是 myjava.MainStart();

【讨论】:

  • 感谢您向我展示了一个示例。非常感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-13
  • 2015-10-01
  • 2011-04-11
  • 1970-01-01
  • 1970-01-01
  • 2012-06-01
  • 1970-01-01
相关资源
最近更新 更多