未解决的参考:活动错误



我正在构建功能,以编写从Edittext字段到共享Preferences的变量。

我尝试了几种向共享流程写作的可能性,而且没有人决定写我自己的作品。因此,我制作了相关的文本视图字段OnClick'able,然后将写入运行到共享Preferences函数。

package com.taylorworld.tw01
import android.content.Context
import android.os.Bundle
import com.google.android.material.snackbar.Snackbar
import androidx.appcompat.app.AppCompatActivity;
import android.view.Menu
import android.view.MenuItem
import android.view.View
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.content_main.*
class MainActivity() : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    //setSupportActionBar(findViewById(R.id.my_toolbar))
    fab.setOnClickListener { view ->
        Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
            .setAction("Action", null).show()
    }
    }
override fun onCreateOptionsMenu(menu: Menu): Boolean {
    // Inflate the menu; this adds items to the action bar if it is                  present.
    menuInflater.inflate(R.menu.menu_main, menu)
    return true
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    return when (item.itemId) {
        R.id.action_settings -> true
        else -> super.onOptionsItemSelected(item)
    }
   }
    var strength = editText2.text.toString()
    var dexterity = editText.text.toString()
    var intelligance = editText4.text.toString()
    var wisdom = editText3.text.toString()
    var constitution = editText6.text.toString()
    var charisma = editText5.text.toString()
    var chrname = editText7.text.toString()
    val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE)
    public fun saveStr(view: View) {
        val sharedPref = activity?.setPreferences(Context.MODE_PRIVATE) ?: return with(sharedPref.edit()) {
            putInt(getString(STR), strength)
            commit()
        }
     }
    public fun saveDex(view: View) {
        val sharedPref = activity?.setPreferences(Context.MODE_PRIVATE) ?: return with(sharedPref.edit()) {
            putInt(getString(DEX), dexterity)
            commit()
        }
     }
     public fun readStr(view: View) {
    }
    }

我从第50、54和62行中获得'未解决的参考:活动'错误,无法解决如何解决错误。

有很多事情对此代码并不理想,但是要让您开始回答即时问题:

活动没有您可以参考的activity成员(变量或功能(。但是,您尝试引用activity的点本身就是MainActivity的范围的一部分,并且因为MainActivity本身是Activity(通过其从AppCompatActivity继承(,因此您可以简单地用activity.替换CC_7。您也可以进一步简化,并且只需删除这些呼叫的this.前缀。

给那个镜头,看看您是否无法从那里弄清楚。如果您不能,我会很乐意提供更多帮助!

最新更新