Ввод EditText в массив - PullRequest
       34

Ввод EditText в массив

0 голосов
/ 28 февраля 2012

У меня есть поле ввода (EditText1) 1. что я хочу продолжать добавлять значения и сохранять их в массиве 2. Затем, когда все готово, я могу нажать кнопку «Готово», и это может привести меня к следующему экрану, и яможет отображать значения или вызывать значения массива .. это то, что у меня есть до сих пор 1. Кнопка «Готово» работает 2. Кнопка «Добавить» и сохранение в массив не совсем работает .... HELP PLZ,

Спасибо

РЕДАКТИРОВАТЬ: Вот отредактированный код:

private EditText txt1;
public static ArrayList<String> playerList = new ArrayList<String>();
String playerlist[];

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.screen2);

    // edittext1 or textview1
    txt1 = (EditText) findViewById(R.id.editText1);
     final String ag = txt1.getText().toString();



        //add more items button
    Button more = (Button) findViewById(R.id.button1);
    more.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view){
            if(txt1.getText().length() != 0){
                                     playerList.add(ag);
                            DisplayToast("Current Players" + playerList);

            Intent myIntent = new Intent(view.getContext(),
                    Screen2.class);
             myIntent.putExtra("playerList",playerList);
                startActivity(myIntent);

            }

        }});
    }
    //display message 
    private <Strg> String DisplayToast(String ag) {
        Toast.makeText(getBaseContext(), ag, Toast.LENGTH_LONG)
                .show();
        return ag;
    }}

Ответы [ 2 ]

0 голосов
/ 28 февраля 2012

Попробуйте сделать ваш массив общедоступным статическим в действии, в котором вы находитесь. Затем вы можете напрямую получить доступ к этому массиву в следующем задании.

РЕДАКТИРОВАТЬ:

В соответствии со сценарием, который вы объявили в своем вопросе, попробуйте этот код: скажи, что это твой Screen1.class:

private EditText txt1;
public static ArrayList<String> playerList = new ArrayList<String>();
String playerlist[];

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.screen2);

    // edittext1 or textview1
    txt1 = (EditText) findViewById(R.id.editText1); 

    //add more items button
    Button more = (Button) findViewById(R.id.button1);
    more.setOnClickListener(new View.OnClickListener() {

        public void onClick(View view){

            String ag=txt1.getText().toString().trim();
            if(ag.length() != 0){
                   playerList.add(ag); 
                   txt1.setText(""); // adds text to arraylist and make edittext blank again
            }
        }
    });

    //press Done button to redirect to next activity
    Button done = (Button) findViewById(R.id.done_button);
    done.setOnClickListener(new View.OnClickListener() {

        public void onClick(View view){

            // start new activity
            Intent myIntent = new Intent(view.getContext(),
                    Screen2.class);             
            startActivity(myIntent);

        }
    });
}   

В вашем Screen2.class напрямую обращайтесь к ArrayList, например:

String s=Screen1.playerList.get(index);// this gives your the string saved in arraylist at index given.

Надеюсь, теперь понятно!

0 голосов
/ 28 февраля 2012

Пока нажата кнопка «Готово», просто передайте массив строк следующему действию, получите значения массива на следующем экране и отобразите его. Вы можете передать массив строк, как показано ниже

Intent myIntent = new Intent(view.getContext(),
                Screen2.class);

    myIntent.putExtra("Stringarray",arrayvalue);
    startActvity(myIntent);
   finish();

В следующем упражнении вы можете получить значение как

        String[] array=getIntent().getExtras().getStringArray("Stringarray");

Edit:

 for(int i=0;i<array.size;i++)
{
    Toast.makeText(this,array[i], Toast.LENGTH_LONG); // here if you have value in array then it will display in toast one by one.
}

Я думаю, что это может помочь вам ...

...