2016-04-14 60 views
-3

基本上,我创建了一个应用程序,用户选择通过,优点或区别为18个不同的单位(学校基本上)。我的问题是,我不知道如何告诉微调,如果它的字符串是“通过”,该字符串等于整数70(优点= 80和区别= 90)。我正在使用一个字符串数组和适配器为spinners。我目前正在尝试使用If语句来做到这一点:在android工作室告诉字符串等于一个int

if (spinner1.toString().equals("Pass")){} 

我只是不知道该怎么做才能告诉字符串等于一个int。

要重申,我希望传递给= 70,优异= 80,区别= 90

任何指导和帮助的,这是大加赞赏。 :)

+0

搜索'HashMap' ... –

+0

您只是在测试 “通行证”。你在哪里有70,80或90? – Stultuske

+1

你应该再次阅读关于类型的教程 - 这里似乎有一个误解,就是类型系统是如何工作的。我们不能告诉你想要做什么,但一个字符串不是一个整数。 https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html –

回答

1

希望这个有帮助,有点含糊不清...你的意思是,你有几个字符串< - > int转换做的?

public YourConstructor() { 
    /*Map<String, Integer>*/ theMap = new HashMap<String, Integer>(); 
    theMap.put("Pass", 10); 
    theMap.put("Merit", 70); 
    theMap.put("distinction ", 90); 
    ... 
} 

public int getNumber(String text) { 
    return theMap.get(text); 

    // I hope this will be, one day, forgotten. This is BAD. 
    //for (String s : theMap.keySet()) 
    // if (text.equals(s)) 
    //  return theMap.get(s); 
    // return 0; // default for "item not found", or throw 
} 

从而final String yourString = ""+getNumber(spinner.getSelectedItem().toString());

转换::字符串整数位是指:

int integer = Integer.parseInt(text); 

整数字符串

String theString = ""+integer; 
+0

是的,微调器中的字符串必须转换为数字,以便textview可以将它们合并。我仍然希望纺纱者继续显示字符串,但是转换为整数和计数必须在后台进行。我尝试了你发布的内容,但是第一行有一个错误,HashMap theMap = new HashMap ();. Android工作室不喜欢,说int不能是原始类型。 –

+0

为什么要设置一个'HashMap'然后迭代每个元素? 'map.get(text)'会做(对未知字符串进行'null'检查)。另外,我认为你需要'HashMap ',而不是'int'。 – TripeHound

+0

我刚刚使用了原始类型,表示您对int/integer做了三重搜索。 –

0

创建地图象下面这样:

Map<String,int> gradeScoreMap=new HashMap<String,int>(); 
gradeScoreMap.put("PASS",70); 
gradeScoreMap.put("MERIT",70); 
gradeScoreMap.put("DISTINCTION",70); 

上面的地图将包含比分

为你的成绩映射创建地图吸气:

public String getgradeScoreMap(String grade) { 
return gradeScoreMap.get(grade); 
} 

上述方法将被用来获取基于输入级的成绩。

现在用途:

int score=-1; 
if (spinner1.toString().equals("Pass")){ 
score =getgradeScoreMap(spinner1.toString()); 
} 

将比分为您同等价值的 “通行证” 即70

+1

我认为你需要'Map 'not'int'。 – TripeHound

+0

谢谢Imran,不幸的是,公共字符串getgradescoreMap(String grade)返回一个错误,它无法解析符号 –

+0

请分享您的代码段和确切的错误描述。 –

相关问题