Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 迁移到Android Studio时强制转换_Java_Android_Eclipse_Casting_Sdk - Fatal编程技术网

Java 迁移到Android Studio时强制转换

Java 迁移到Android Studio时强制转换,java,android,eclipse,casting,sdk,Java,Android,Eclipse,Casting,Sdk,我正在做一个基于Eclipse的老项目,并在Android Studio中打开它。最初是用1.7版构建的,现在我使用1.8版,尝试了1.7版却没有成功 我的主要问题是出现以下3个错误: float size = (float) Float.parseFloat(v.getTag(R.string.size)); 错误: 代码: int pos=(int)v.getTag(R.string.pos) 代码: 错误: 我知道它正在尝试将一个对象转换为整数。我试过几种可能的解决办法,但没有成功。代码

我正在做一个基于Eclipse的老项目,并在Android Studio中打开它。最初是用1.7版构建的,现在我使用1.8版,尝试了1.7版却没有成功

我的主要问题是出现以下3个错误:

float size = (float) Float.parseFloat(v.getTag(R.string.size));
错误:

代码: int pos=(int)v.getTag(R.string.pos)

代码:

错误:

我知道它正在尝试将一个对象转换为整数。我试过几种可能的解决办法,但没有成功。代码中有任何可能的变化,我显然不能考虑吗

谢谢

v.getTag(R.string.size)
返回一个
对象
。它可以是任何物体。您需要将其显式转换为字符串

float size = (float) Float.parseFloat((String)(v.getTag(R.string.size)));
第二个和第三个在我看来很奇怪。将
Object
强制转换为
int
,应首先将其强制转换为
Integer
,然后对强制转换的对象调用
intValue()


顺便说一句,android不支持java 1.8

为了帮助您,完整的代码块(第一个和第三个代码块已被替换)现在是:

public void onClick(View v) {
        String type = (String) v.getTag(R.string.type);
        float size = (float) Float.parseFloat((String)(v.getTag(R.string.size)));
        int pos = (int) v.getTag(R.string.pos);
        if (type.equals("white")) {
            // Play sound!
            Log.d("DEBUG", "White note, Size: " + size + ", Position (left to right): " + pos);
        } else if (type.equals("black")) {
            int parentpos = Integer.parseInt(v.getTag(R.string.parentpos).toString());
            // Play sound!
            Log.d("DEBUG", "Black note, Size: " + size + ", Parent Position (left to right): " + parentpos + ", Position (top to bottom): " + pos);

        }
    }

第一个和第三个问题解决了,但第二个问题没有解决。我不知道是否出了什么问题,但应该不会,因为该应用程序是我和一位朋友大约两年前开发的,当时似乎没有问题。但第二个等于第三个。它不会发送任何信息,是吗?
int parentpos = (int) v.getTag(R.string.parentpos);
Error: Error:(234, 63) java: incompatible types: java.lang.Object cannot be converted to int
float size = (float) Float.parseFloat((String)(v.getTag(R.string.size)));
public void onClick(View v) {
        String type = (String) v.getTag(R.string.type);
        float size = (float) Float.parseFloat((String)(v.getTag(R.string.size)));
        int pos = (int) v.getTag(R.string.pos);
        if (type.equals("white")) {
            // Play sound!
            Log.d("DEBUG", "White note, Size: " + size + ", Position (left to right): " + pos);
        } else if (type.equals("black")) {
            int parentpos = Integer.parseInt(v.getTag(R.string.parentpos).toString());
            // Play sound!
            Log.d("DEBUG", "Black note, Size: " + size + ", Parent Position (left to right): " + parentpos + ", Position (top to bottom): " + pos);

        }
    }