相关疑难解决方法(0)

不能把双SharedPreferences

得到错误,这个类型的sharedPreferences编辑器没有定义double方法.Eclipse给了编辑器一个快速修复添加转换,但是当我这样做仍然给出错误时,为什么我不能放双.

代码:

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();

    if (TextUtils.isEmpty(editBl.getText().toString())) {
        numberOfBl = 0;
    } else {
        numberOfBl = Integer.parseInt(editBl.getText().toString();

    }
    if (TextUtils.isEmpty(editSt.getText().toString())) {
        tonOfSt = 0;
    } else {
        tonOfSt = Double.parseDouble(editSt.getText().toString());

    }

    SharedPreferences prefs = getSharedPreferences(
            "SavedTotals", Context.MODE_PRIVATE);

    SharedPreferences.Editor editor = prefs.edit();

    editor.putInt("savedBl", numberOfBl);
    editor.putDouble("savedSt", tonOfSt);


    editor.commit();
}
Run Code Online (Sandbox Code Playgroud)

android sharedpreferences

81
推荐指数
4
解决办法
3万
查看次数

如何检查Kotlin中的泛型类型?

我有课

class Generic<T : SuperType>()
Run Code Online (Sandbox Code Playgroud)

这段代码不对

fun typeCheck(s: SuperType): Unit {
            when(s){
                is T -> //do some thin
            }
        }
Run Code Online (Sandbox Code Playgroud)

但是施放s类型T s as T显示警告 - 不安全的施法.
怎么检查s是什么类型T

kotlin

22
推荐指数
3
解决办法
1万
查看次数

Kotlin 获取没有实例的泛型类的类型

嘿,想要获取T 的类型,但我无法从实例中获取它,我必须从类参数中获取它,该怎么做?

abstract class ViewModelFragment<T : ViewModel>{
    protected lateinit var mViewModel: T

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
       mViewModel = ViewModelProviders
                    .of(scope)
                    .get(getGenericTClass())
    // .get(mViewModel.javaClass) // not working either

   }

   inline fun<reified R> getGenericTClass() = R::class.java

}
Run Code Online (Sandbox Code Playgroud)

现在编译器抱怨

不能使用“T”作为精炼的类类型。请改用 Class。

我尝试使用以下解决方案:https : //stackoverflow.com/a/34463352/2163045但对我不起作用

kotlin-extension

6
推荐指数
1
解决办法
1205
查看次数

Android Studio Kotlin 出现 dataSnapshot.getValue 错误

我在最近的项目中将 java 文件转换为 kotlin 文件,问题是我遇到了以下代码的错误:

 val map = dataSnapshot.getValue<Map<*, *>>(Map<*, *>::class.java)
Run Code Online (Sandbox Code Playgroud)

我在“Map<*, *>::class”下有一条红线,android studio 说:

类文字的左侧仅允许类

我应该用这段代码做什么?还有其他写法吗?

这是一个相关的 kotlin 代码片段:

val messageText = messageArea!!.text.toString()
        if (messageText != "") {
            val map = HashMap<String, String>()
            map.put("message", messageText)
            map.put("user", UserDetails.username)
            reference1!!.push().setValue(map)
            reference2!!.push().setValue(map)
            messageArea!!.setText("")
        }
    }
    reference1!!.addChildEventListener(object : ChildEventListener {
        override fun onChildAdded(dataSnapshot: DataSnapshot, s: String) {
            val map = dataSnapshot.getValue<Map<*, *>>(Map<*, *>::class.java)
            val message = map.get("message").toString()
            val userName = map.get("user").toString()
Run Code Online (Sandbox Code Playgroud)

原始java代码片段:

String messageText = messageArea.getText().toString();

            if(!messageText.equals("")){
                Map<String, String> map = new HashMap<String, …
Run Code Online (Sandbox Code Playgroud)

java android kotlin firebase

5
推荐指数
1
解决办法
3900
查看次数