2009-11-30 6 views
-1

здесь я пытаюсь добавить элементы в массив. Элементы, которые я пытаюсь добавить, - это текстовые поля, поэтому им в основном пытаются сохранить контактную информацию лиц в списке массивов?Добавление элементов в массив?

любая помощь будет признателен

public void addContact() 
{ 
    ArrayList<String> details = new ArrayList<String>(); 
    { 
     details.get(txtname(0)); 
     details.get(txtnum(1)); 
     details.get(txtmob(2)); 
     details.get(txtadd1(3)); 
    }   
} 
+0

Расскажите подробнее. Совсем не понятно, с чего вы начинаете, чего, как вы надеетесь, заканчиваете, или конечной целью. –

+3

Так в чем вопрос? – notnoop

+4

Вот базовый учебник по Java: http://java.sun.com/docs/books/tutorial/java/index.html. Вот учебник по сборкам Java: http://java.sun.com/docs/books/tutorial/collections/index.html. Это вам действительно нужно. – BalusC

ответ

7

Похоже, вы не продумали всю проблему еще.

Добавление элементов в ArrayList в Java делается так:

public void addContact(){ 
    ArrayList<String> foo = new ArrayList<String>(); 
    foo.add("HELLO"); 
    foo.add("WORLD"); 
} 
0

Вам нужно установить или добавить, не получить. См. Документы here.

Чтобы получить текст с textfields, используйте getText.

Таким образом, вы бы что-то вроде:

myArrayList.add(myTextField.getText()); 
0

Вы пытаетесь использовать встроенный синтаксис массива инициализатора. Это не работает в классах контейнеров (если только не существует какого-то нового способа поиска в C#), вам нужно использовать details.add() (или соответствующую функцию-член).

Синтаксис, который вы пытаетесь использовать, относится к типам жестких кабелей с поддержкой языка. В C++ это будет выглядеть как char x[6] = {'h','e','l','l','o'};. Однако контейнер не является массивом его контейнерного объекта. Контейнерные объекты часто имитируют массивы путем перегрузки operator[], однако они используют разные структуры данных за кулисами - т. Е. Они не используют смежные области памяти.

p.s. Если бы это было C# .NET - изначально я предполагал - существует новый механизм для сопоставления инициализации массива с созданием объекта контейнера. Я оставлю это для всех, кого это интересует.

C# 3.5 в использовании array initializer syntax вы можете сделать следующее:

public void addContact() 
{    
    ArrayList<String> details = new ArrayList<String>() 
    { 
     details.get(txtname(0)), 
     details.get(txtnum(1)), 
     details.get(txtmob(2)), 
     details.get(txtadd1(3)) 
    }   
} 

Должен любить Microsoft и C#: P

+0

Это не имеет никакого смысла в Java - даже после ваших изменений. OP не использует ничего удаленного, как синтаксис инициализатора массива Java. –

2

yankee2905 объясняет это очень хорошо; это то, что вам нужно, чтобы ваш код работал с ArrayList.

Как побочное примечание, вы не имеете дело с массивом, вы имеете дело с ArrayList. Для массива, вы можете иметь что-то вроде этого:

String[] details = new String[4]; 
details[0] = "First"; 
details[1] = "Second"; 
details[2] = "Third"; 
details[3] = "Last"; 
0
public void addContact() 
     { 
      ArrayList<String> details = new ArrayList<String>(); 
      { 
      details.add(//Insert value from post here); 
      details.add(//Insert value from post here); 
      details.add(//Insert value from post here); 
      details.add(//Insert value from post here); 
      }   
     } 

Я не использовал Java в то время, может быть, кто-то к этому добавить.

+0

Запрос ["txtname"] поможет вам получить значения из HttpContext в сообщении. – Tebo

1

Похоже, вы пытаетесь использовать ArrayList для хранения контактной информации для нескольких людей. Если это так, вы, вероятно, захотите сделать это несколько иначе. Вы можете создать контактный объект, в котором есть члены для каждой части информации, которую вы хотите сохранить (например, имя, фамилия, телефон, мобильный, адрес1, адрес2 и т. Д.).Затем вы можете просто добавить объекты Contact в свой ArrayList:

Контакт contact1 = новый Контакт();

contact1.setFirstname ("Bob");

myArrayList.add (contact1);

0
public void addContact() 
{ 
    ArrayList<String> details = new ArrayList<String>(); 
    details.add(txtname.getText()); 
    details.add(txtnum.getText()); 
    details.add(txtmob.getText()); 
    details.add(txtadd1.getText());   
} 

К сожалению у меня нет IDE с открытым, но я думаю, что это ближе к тому, что вы после этого.

0

Я думаю, что это лучшее решение, если вы хотите создать массив с элементами:

String[] images = {"a.png","b.png","c.png"}; 

или

String[] images;  
images = new String[]{"a.png","b.png","c.png"};