используйте EditText, чтобы изменить значение TextView для другого действия (backoffice) - PullRequest
0 голосов
/ 08 января 2019

Я хочу создать административный бэк-офис для своего приложения, где я могу обновить текст в других действиях, которые установлены как TextView (должны ли они быть EditText)? У меня есть поле EditText в моей активности администратора, и я установил кнопку, которая «должна» инициализировать копирование текущего содержимого в EditText и сохранить его в переменной «flowSales», я пытаюсь получить переменную «flowSales» в моем клиенте активность и .setText для моего TextView. Буду признателен за любую помощь, даже если она простая, вы делаете это неправильно.

Я могу найти переменную "flowSales" во втором своем занятии, в это время мой "var flowSales = Editable" не возвращает компаньона для Editable.

adminPage.kt (бэк-офис) editMeFs - это поле EditText, а flowSales - переменная, которую я создал, чтобы я мог перетащить ее на второе действие

var flowSales = Editable

class adminPage : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_admin_page)

    upDate.setOnClickListener{
        flowSales = editMeFs.text
    }
  }
}

activity2.kt (страница пользователя) flowersales - это TextView для обновления

class Activity2 : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_activity2)
    setSupportActionBar(toolbar)

    fab.setOnClickListener { view ->
        Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
            .setAction("Action", null).show()
    }

    flowersales.setText(flowSales)
  }
}

Так что сейчас с var flowSales = Editable Я не могу запустить приложение, возвращая ошибку

"\adminPage.kt: (9, 17): Classifier 'Editable' does not have a companion object, and thus must be initialized here", 
if i set "= null" or "= 0"

Я могу запустить свое приложение и нажать кнопку на странице администратора, однако при переходе к занятию 2 оно не обновило текст, который я поместил в EditText.

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Во-первых, всегда имя класса начинается с верхнего регистра. Это правда;

class AdminPage: AppCompatActivity()

Если мы подойдем к вашей проблеме, вы можете решить это;

lateinit var flowSales: String

class AdminPage : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_admin_page)

    upDate.setOnClickListener{
        flowSales = editMeFs.text.toString()
    }
  }
}
0 голосов
/ 08 января 2019
var flowSales: String = ""

class adminPage : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_admin_page)

        //do this function when button is clicked
        upDate.setOnClickListener{
            //edit the the variable to fit what's in editText
            flowSales = editMeFs.text.toString()
        }
    }

}

активность пользователя

class Activity2 : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_activity2)
        setSupportActionBar(toolbar)

        fab.setOnClickListener { view ->
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                .setAction("Action", null).show()
        }
        //call variable from admin page and set as flowersales text
        flowersales.text = flowSales
    }
}

это работает

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