如果用户自己输入值,我如何对arraylist进行排序。例如,如果用户添加:Ben,Tom,Jack。然后按下播放它会打开一个新的活动,并显示杰克的名字。如果你按回来,汤姆。然后是本。我希望它是另一种方式。我尝试过collections.sort(),但没有运气。还有其他想法吗?
数组:
ArrayList<String> list = new ArrayList<String>();
ArrayAdapter<String> adapter;
用户添加名称的方式:
public void onClick(View v) {
String input = mYrasytiVarda.getText().toString();
if(input.length() > 0)
{
// add string to the adapter, not the listview
adapter.add(input);
// no need to call adapter.notifyDataSetChanged(); as it is done by the adapter.add() method
}else{
AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Klaida:");
alertDialog.setMessage("Blogai yrašytas vardas");
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// here you can add functions
}
});
alertDialog.show();
}
}
我在这里获取名称并将其发送到其他活动:
@Override
public void onClick(View v) {
// count items
int i;
for (i = 0; i < adapter.getCount(); i++) {
String obj = adapter.getItem(i);
// send items to other activity
Intent pradetiZaidima = new Intent(v.getContext(), ZaidimasActivity.class);
pradetiZaidima.putExtra("playerList", obj);
startActivity(pradetiZaidima);
}
}
我在这里展示它们:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zaidimas);
//get the player list from ZaidejaiActivity
Bundle recdData = getIntent().getExtras();
String myVal = recdData.getString("playerList");
//show the player list
mZaidejas = (TextView)findViewById(R.id.ZaidejoVardas);
mZaidejas.setText(myVal);
}
});
}
答案 0 :(得分:0)
在这个循环中:
for (i = 0; i < adapter.getCount(); i++) {
String obj = adapter.getItem(i);
// send items to other activity
Intent pradetiZaidima = new Intent(v.getContext(), ZaidimasActivity.class);
pradetiZaidima.putExtra("playerList", obj);
startActivity(pradetiZaidima);
}
...您为列表中的每个项目按照它们存储在ArrayAdapter中的顺序创建一次活动。您可以按相反顺序遍历项目。 例如:
@Override
public void onClick(View v) {
for (int i = adapter.getCount()-1; i >= 0; i--) {
String item = adapter.getItem(i);
Intent pradetiZaidima = new Intent(v.getContext(), ZaidimasActivity.class);
pradetiZaidima.putExtra("playerList", item);
startActivity(pradetiZaidima);
}
}