【问题标题】:use EditText to change TextView value on another activity (backoffice)使用 EditText 更改另一个活动的 TextView 值(后台)
【发布时间】:2019-01-08 14:02:34
【问题描述】:

我想为我的应用程序创建一个管理后台,我可以在其中更新设置为 TextView 的其他活动中的文本(它们应该是 EditText)吗? 我的管理活动中有一个 EditText 框,并设置了一个按钮“应该”初始化 EditText 中当前内容的复制并将其保存到变量“flowSales”中,而不是尝试在我的客户中获取变量“flowSales”活动和 .setText 到我的 TextView。任何帮助都将不胜感激,即使它是一个简单的,你做错了。

我能够在我的第二个活动中找到变量“flowSales”,此时我的“var flowSales = 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"

我可以运行我的应用程序并单击管理页面上的按钮,但是当我进入 Activity 2 时,它没有更新我放入 EditText 的文本。

【问题讨论】:

  • 好的编辑,我将 adminpage 变量更改为字符串 var flowSales: String = "" class adminPage : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_admin_page) //单击按钮时执行此功能 upDate.setOnClickListener{ //编辑变量以适应editText中的内容 flowSales = editMeFs.toString() }
  • 现在我在按下更新按钮 android.support.v7.widget.AppCompatEditText{68a90a8VFED..CL. .F...... 167,330-587,421 #7f)8004a app:id/editMeFs}

标签: android android-studio kotlin


【解决方案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()
    }
  }
}

【讨论】:

    【解决方案2】:
    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
        }
    }
    

    这行得通

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-23
      • 2013-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多