首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >未解析的引用:活动错误

未解析的引用:活动错误
EN

Stack Overflow用户
提问于 2019-05-21 04:12:10
回答 1查看 4.2K关注 0票数 0

我正在构建将变量从editText字段写入sharedPreferences的函数。

我尝试过写sharedPreferences的几种可能性,但没有一种可行,所以我决定写我自己的。因此,我将相关的TextView字段onClick设置为可用,然后运行对sharedPreferences函数的写操作。

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行得到了“未解决的引用:活动”错误,但无法解决这些错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-21 04:56:50

这段代码有许多不太理想的地方,但为了让您开始回答您直接提出的问题:

活动没有您可以引用的activity成员(变量或函数)。但是,您试图引用activity的点本身就是MainActivity作用域的一部分,而且因为MainActivity本身就是一个Activity (通过从AppCompatActivity继承),所以您可以简单地用this.替换activity.,您还可以进一步简化并删除这些调用的this.前缀。

试一试,看看你能不能从那里弄明白。如果你不能,我很乐意帮你更多!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56227560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档