我在理解如何比較Java中的字符串for Android時遇到問題。我已經編寫了代碼在JavaScript和Palm中執行此操作,但是對於Java來說是新的並且有點困惑。舉個例子,我想修改Android開發者網站上的SpinnerActivity示例(http://developer.android.com/resources/samples/Spinner/src/com/android/example/spinner/SpinnerActivity.html)。在我的應用程序中,我正在研究旋轉器而不是行星的管道尺寸。當用戶選擇管道尺寸時,我想引用一系列管道尺寸,並能夠選擇與管道尺寸相關的其他參數,如管道的外徑(OD)。我修改了上面的示例代碼,並添加了管道尺寸和外徑大小的數組。然後我嘗試比較用戶在管道大小微調器中選取的數據與我的管道大小數組,並使用匹配的數組的數量來選擇相關的OD。我試圖進行這種比較的方式有些問題。我將這兩個值都設置爲刺,但他們似乎從未找到彼此。將字符串數組與字符串進行比較並將我的結果發佈到main.xlm
HelloSpinner1.java部分我已經改變爲:
public void onItemSelected(AdapterView<?> parent, View v, int pos, long row) {
HelloSpinner1.this.mPos = pos;
HelloSpinner1.this.mSelection = parent.getItemAtPosition(pos).toString();
/*
* Set the value of the text field in the UI
*/
TextView resultText = (TextView)findViewById(R.id.SpinnerResult);
resultText.setText(HelloSpinner1.this.mSelection);
String[] OD; // array of pipe ODs
OD = new String[30]; // allocates memory for 30 floating point numbers
OD[0] = "0.405";
OD[1] = "0.540";
OD[2] = "0.675";
OD[3] = "0.840";
OD[4] = "1.050";
OD[5] = "1.315";
OD[6] = "1.660";
OD[7] = "1.9";
OD[8] = "2.375";
OD[9] = "2.875";
OD[10] = "3.5";
OD[11] = "4";
OD[12] = "4.5";
OD[13] = "5.563";
OD[14] = "6.625";
OD[15] = "8.625";
OD[16] = "10.750";
OD[17] = "12.75";
OD[18] = "14";
OD[19] = "16";
OD[20] = "18";
OD[21] = "20";
OD[22] = "22";
OD[23] = "24";
OD[24] = "26";
OD[25] = "28";
OD[26] = "30";
OD[27] = "32";
OD[28] = "34";
OD[29] = "36";
String [] Size;
Size = new String [30];
Size[0] = "1/8";
Size[1] = "1/4";
Size[2] = "3/8";
Size[3] = "1/2";
Size[4] = "3/4";
Size[5] = "1";
Size[6] = "1-1/4";
Size[7] = "1-1/2";
Size[8] = "2";
Size[9] = "2-1/2";
Size[10] = "3";
Size[11] = "3-1/2";
Size[12] = "4";
Size[13] = "5";
Size[14] = "6";
Size[15] = "8";
Size[16] = "10";
Size[17] = "12";
Size[18] = "14";
Size[19] = "16";
Size[20] = "18";
Size[21] = "20";
Size[22] = "22";
Size[23] = "24";
Size[24] = "26";
Size[25] = "28";
Size[26] = "30";
Size[27] = "32";
Size[28] = "34";
Size[29] = "36";
String ODSize;
for (int i = 0; i <= 29; i++){
if (Size.equals("HelloSpinner1.this.mSelection")) {
ODSize = OD[i];
break;
}
}
}
關聯的strings.xml rorm android的網站稍作修改爲:
管道和管件
1/8 1/4 3/8 3/4 1-1/4 1-1/2 2-1/2 3-1/2 選擇一個管道尺寸
我用你的選擇2),它完美的工作。不要真正理解你的意思,「只需將代碼編寫成一個不需要稍後解釋的數組」,但我又是新手。再次感謝您的幫助,非常有價值。 – 63alfred 2011-03-27 08:49:25
我不確定你是如何在內部存儲數據的(這很好)。但我建議,如果你有一個不會改變的值的數組,那麼把它作爲需要這些值的類的一部分,而不是xml中的字符串數組。 IE:在你的代碼中:String [] myArr = new String [20];將值設置爲一次,並且您將有權訪問它們,而您的代碼不必將xml字符串數組解釋爲數字。你用外徑做了這個(儘管你應該把它定義在其他地方而不是在方法中,所以它不會被創建一堆)。 – AndyMac 2011-03-27 15:38:27
在進一步的檢查中,你使用的字符串數組作爲微調文本,我假設?即使如此,您可以將這些尺寸的內部陣列設置爲雙倍,以便您可以將管道尺寸與外徑相比倍增得多。無論哪種方式,只是一個改進建議。 – AndyMac 2011-03-27 15:39:30