嗨,有人可以給我一個示例,說明如何根據textviews中的數字對textviews進行排序。我能夠從TextView中得到文本,需要先排序並放置最小的數字。如何在TextViews中對數字進行排序並顯示它們?
謝謝。
public void sortNumbers(View v) {
String[] numbers = new String[7];
numbers[0] = textView23.getText().toString();
numbers[1] = textView33.getText().toString();
numbers[2] = textView43.getText().toString();
numbers[3] = textView53.getText().toString();
numbers[4] = textView63.getText().toString();
numbers[5] = textView73.getText().toString();
numbers[6] = textView83.getText().toString();
Integer[] intValues = new Integer[numbers.length];
for (int i = 0; i < numbers.length; i++) {
intValues[i] = Integer.parseInt(numbers[i].trim());
}
Collections.sort(Arrays.asList(intValues));
for (int i = 0; i < intValues.length; i++) {
Integer intValue = intValues[i];
//here I want to assign sorted numberes to the TextViews
}
}
所以我跟了傑弗裏的建議。這是仍然無法正常工作的代碼。什麼可能是錯的?
創建TextViews數組:
TextView[] tvs = new TextView[7];
tvs[0] = textView23;
tvs[1] = textView33;
tvs[2] = textView43;
tvs[3] = textView53;
tvs[4] = textView63;
tvs[5] = textView73;
tvs[6] = textView83;
排序的數組和assinged新值TextViews:
Arrays.sort(tvs, new TVTextComparator());
textView23.setText(tvs[0].getText().toString());
textView33.setText(tvs[1].getText().toString());
textView43.setText(tvs[2].getText().toString());
textView53.setText(tvs[3].getText().toString());
textView63.setText(tvs[4].getText().toString());
textView73.setText(tvs[5].getText().toString());
textView83.setText(tvs[6].getText().toString());
這裏是Comporator類:
public class TVTextComparator implements Comparator<TextView> {
public int compare(TextView lhs, TextView rhs) {
Integer oneInt = Integer.parseInt(lhs.getText().toString());
Integer twoInt = Integer.parseInt(rhs.getText().toString());
return oneInt.compareTo(twoInt);
}
}
'youtTextView.setText( 「」 +的intValue);' – MAC 2012-07-31 15:31:20
它不是清楚你在問什麼。你是否希望文本視圖按照排序順序在屏幕上呈現? – 2012-07-31 15:37:06
這些數字按升序排列。所以textView23應該顯示最低的數字,而textView83應該顯示最高的數字。我怎麼做? – 2012-07-31 15:40:12