按用户输入的值对arraylist进行排序

时间:2015-01-26 13:13:33

标签: java android sorting arraylist

如果用户自己输入值,我如何对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);


            }
        });
    }

1 个答案:

答案 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);
            }
        }