Android:在EditText中排序字母

时间:2016-03-21 14:37:37

标签: java android arrays sorting collections

[这是我输出的截图] [1]

我正在尝试对数组的元素进行排序。 我已经从EditText1(ed)将元素存储到数组中,我想对它们进行排序并在EditText2中显示它们。 我完成了存储它们并显示它们,我想用Collections.sort(array);对它们进行排序,但它告诉我存在错误。

到目前为止,这是我的代码:

public class MainActivity extends AppCompatActivity {
List<EditText> allEds = new ArrayList<EditText>();
 EditText ed,ed2;
RelativeLayout container;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
     ed= (EditText)findViewById(R.id.editText);
    ed2=(EditText)findViewById(R.id.editText2);
    final Button b=(Button)findViewById(R.id.button);
    container = (RelativeLayout)findViewById(R.id.rl);


    b.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            allEds.add(ed);
            String[] strings = new String[allEds.size()];
            for(int i=0; i < allEds.size(); i++){
                strings[i] = allEds.get(i).getText().toString();
                Log.e("My data", strings[i]);
                ed2.setText(strings[i]);

            }


        }
    });
  

[1]:http://i.stack.imgur.com/dowdE.jpg

2 个答案:

答案 0 :(得分:3)

可能是这样的吗?

public class MainActivity extends AppCompatActivity {
    List<String> allEds = new ArrayList<String>();
    EditText ed,ed2;
    RelativeLayout container;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      ed= (EditText)findViewById(R.id.editText);
      ed2=(EditText)findViewById(R.id.editText2);
      final Button b=(Button)findViewById(R.id.button);
      container = (RelativeLayout)findViewById(R.id.rl);

      b.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        String str = ed.getText().toString();
        String lines[] = str.split("\\r?\\n");
        Arrays.sort(lines);

        ed2.setText(TextUtils.join("\n", lines));
    }
});

答案 1 :(得分:1)

我认为这可能会有效(用onClick替换onClick中的代码):

String[] strings = ed.getText().toString().split("\\r?\\n");
Arrays.sort(strings);
String output = TextUtils.join("\\n",strings);
ed2.setText(output);