【发布时间】:2017-10-29 09:27:02
【问题描述】:
我正在使用 TableLayout 在 Android 中显示表格。我想在单击按钮时对表格进行排序。这是我尝试过的。但它对每一列进行排序。我想要的是根据列对行进行排序?
private View.OnClickListener msg = new View.OnClickListener() {
public void onClick(View v) {
ArrayList < String > sortobj = new ArrayList < String > ();
ArrayList < String > sortobj1 = new ArrayList < String > ();
ArrayList < String > sortobj2 = new ArrayList < String > ();
ArrayList < String > sortobj3 = new ArrayList < String > ();
for (int i = 0; i <= listobj.size(); i++) {
sortobj.add(listobj.get(i).get(TAG_Name));
sortobj1.add(listobj.get(i).get(TAG_Abbr));
sortobj2.add(listobj.get(i).get(TAG_Area));
sortobj3.add(listobj.get(i).get(TAG_Capital));
if (listobj.get(i).get(TAG_Name).equals("West Bengal"))
break;
}
Collections.sort(sortobj, Collections.reverseOrder());
Collections.sort(sortobj1, Collections.reverseOrder());
Collections.sort(sortobj2, Collections.reverseOrder());
Collections.sort(sortobj3, Collections.reverseOrder());
table = (TableLayout) findViewById(R.id.mytable);
Log.e(TAG, "Sorted in reverse order................ :");
for (int i = 0; i < sortobj.size(); i++) {
TableRow row = new TableRow(getApplicationContext());
TextView tv0 = new TextView(getApplicationContext());
TextView tv1 = new TextView(getApplicationContext());
TextView tv2 = new TextView(getApplicationContext());
TextView tv3 = new TextView(getApplicationContext());
row.setLayoutParams(new TableRow.LayoutParams(
TableRow.LayoutParams.WRAP_CONTENT,
TableRow.LayoutParams.MATCH_PARENT));
tv0.setText(sortobj.get(i));
tv1.setText(sortobj1.get(i));
tv2.setText(sortobj2.get(i));
tv3.setText(sortobj3.get(i));
row.addView(tv0);
row.addView(tv1);
row.addView(tv2);
row.addView(tv3);
table.addView(row, new TableLayout.LayoutParams(
TableLayout.LayoutParams.WRAP_CONTENT,
TableLayout.LayoutParams.MATCH_PARENT));
}
}
};
【问题讨论】:
-
你必须手动完成。
-
@AhamadAnees 它不能以编程方式完成吗?
-
我不知道为什么人们将我的问题标记为否定?!他们不能回答所以他们给负分?我的意思是为什么??
-
是的,你可以。请包含您将数据添加到表中的代码。
-
如果人们认为该问题没有表现出任何努力或研究,或者质量低下,他们可以投反对票。不要认为它是消极的。 :-) 你仍然可以改进它
标签: java android tableview tablelayout columnsorting