Android Studio: изменить EditText, поданный из класса Java - PullRequest
0 голосов
/ 25 ноября 2018

У меня есть приложение для Android с текстовой меткой, которое я хотел бы изменить, когда пользователь нажимает кнопку (это можно сделать внутри файла myapp.kt).Я хочу узнать, как изменить этот текст в обычном файле Java (Simplejava.java).Проблема в том, что когда я пытаюсь вызвать метку editText1 из файла Simplejava.java, выдается следующая ошибка: 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");
    }
}

1 Ответ

0 голосов
/ 25 ноября 2018

Simplejava.class - это класс, который не наследует ни действия, ни view +, у него нет метода с именем 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();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...