2012-02-29 2 views
0

Как отобразить список массивов в тосте .. Это код, который у меня есть, но он не отображает полные элементы в массиве. Какая у меня проблема?Показать в списке массива тостов

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

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

    // edittext1 or textview1 
    txt1 = (EditText) findViewById(R.id.editText1); 
    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) { 
       String ag = "Current Added Players:," + txt1.getText().toString() + txt1.getText().toString(); 
       playerList.add(ag); 
       Toast.makeText(getBaseContext(), ag, Toast.LENGTH_SHORT).show(); 

       Intent myIntent = new Intent(view.getContext(), Screen2.class); 
       myIntent.putExtra("Stringarray", playerList); 
       //startActivityForResult(myIntent, 0); 
      } 
     } 
    }); 
} 
+0

sergey what has u edit? – user1179083

ответ

0

Ответ упаковывают кто работает в той же проблемы: добавить в «игрок = txt1 .....» внутри кнопки мыши сама не внешняя сторона

 //add more items button 
    Button more = (Button) findViewById(R.id.button1); 
    more.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view){ 
      player = txt1.getText().toString(); 
      if (txt1.getText().toString().length() !=0){ 
       playerList.add(player); 
       txt1.setText(""); 
      } 
      Toast.makeText(getBaseContext(), playerList + " ", Toast.LENGTH_LONG).show(); 

     } 

    }); 
1

вы можете использовать List.toArray (playerList), а затем цикл по списку, чтобы сделать длинную строку и тосты, которые

String[] playerArray = (String[]) playerList.toArray(); 
String playerToast = playerArray[0]; 
for(int i=1; i<playerArray.length(); i++){ 
    playerToast += " "; 
    playerToast += playerArray[i]; 
} 
Toast.makeText(getBaseContext(), playerToast, Toast.LENGTH_SHORT).show(); 
+0

Зачем вам нужно преобразование в массив? 'String playerToast = playerList.get (0); for (int i = 1; i

+0

1. У Сергея хорошая точка, вам не нужно преобразовывать список в массив с помощью' List.get (i) ', хотя я бы использовал строковый массив, чтобы начать с 2. что произошло к вашему коду со вчерашнего дня, где вы очистили поле EditText 'txt1.setText (" ")' каждый раз, когда вы нажали кнопку и добавили в 'playerList'. 3. Yawus прав, петля над тостом была бы визуально более эстетичной, чем очень длинный тост, это достаточно легко 'for (int i = 0; i

+0

вы заработали? можете ли вы выбрать ответ, если кто-нибудь помог? –

0

Ваша проблема заключается эта строка кода

String ag = "Current Added Players:," +txt1.getText().toString() + txt1.getText().toString() ; 

Каждый раз, когда вы нажимаете любую кнопку, которую вы установили для этого слушателя, переменной ag присваивается указанное выше значение. Вы используете Toast имеет ag набор в качестве своего сообщения так тоста всегда будет отображаться

"Current Added Players:," +txt1.getText().toString() + txt1.getText().toString() 

Есть несколько способов использования Тост, чтобы отобразить содержимое ArrayList:

Один из способов заключается в использовании для цикла и назначьте содержимое вашего ArrayList в одну строку, хотя это приведет к чрезвычайно большому Toast для больших ArrayLists.

Второй способ - использовать цикл for для отображения сообщения Toast для каждой записи в ArrayList. Что-то вдоль линий

for(int i, i < playerList.length, i++) { 
     Toast.makeText(this, playerList[i], Toast.LENGTH_SHORT) 
      .show(); 
} 
+0

Это работает, мне просто нужно было поместить объявление строки внутри кнопки click – user1179083

2

Если ArrayList имеет строк или каких-либо объектов класса обертки, то вы можете следовать этому

ArrayList<String> a = new ArrayList<String>(); 
a.add("Hello"); 
a.add("World"); //similarly any other add statements 
Toast.makeText(getBaseContext(), a+"", Toast.LENGTH_SHORT).show(); 

Нет необходимости преобразовать в массив или итерацию по списку, потому что когда список содержит объекты класса String или оболочки, то их методы toString() возвращают значение вместо шестнадцатеричного логического адреса.

Так что в этом случае вы получите сообщение тостов показывая

[Hello,World,...other elements what is stored in the arraylist] 
Смежные вопросы