使用EditText更改另一个活动(后台)上的TextView值

时间:2019-01-08 00:12:12

标签: android android-studio kotlin

我想为我的应用程序创建一个管理后台,我可以在其中更新设置为TextView(应该为EditText)的其他活动中的文本吗? 我在Admin活动中有一个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 :(得分:1)

首先,类名始终以大写开头。这是事实;

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()
    }
  }
}

答案 1 :(得分:0)

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
    }
}

这有效