Добавление пользовательских объектов в поле списка внутри пользовательского объектаJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Добавление пользовательских объектов в поле списка внутри пользовательского объекта

Сообщение Anonymous »

Я пытаюсь добавить пользовательские объекты в список, который представляет собой поле внутри другого пользовательского объекта. < /p>
Позвольте мне объяснить рассуждение. У меня есть Arraylist клиентов (компании), у этих клиентов есть контакты (контактные лица, которые работают в клиенте). По этой причине я пытаюсь добавить эти контакты в Arraylistfield внутри клиентского объекта. Но я не знаю, как добавить их в ArrayList выбранного клиента или как вызовать метод внутри клиентских корреспондентов с инициализацией, поскольку конструктор спрашивает все поля клиента.package Activities.Main.Objects;

import android.util.Log;
import Main.Arrays.ClientsArray;

import java.util.ArrayList;
import java.util.List;

/**
* Created by Oscar on 19-02-16.
*/
public class Clients {
private String Name;
private String Phone;
private String Email;
private String URL;
private Double Turnover;
private String VisitAddress;
private String VisitCity;
private String VisitZipcode;
private String VisitCountry;
private String PostalAddress;
private String PostalCity;
private String PostalZipcode;
private String PostalCountry;
private List Contactlist = new ArrayList();

public Clients(String Name, String Phone, String Email, String URL, Double Turnover,
String VisitAddress, String VisitCity, String VisitZipcode, String VisitCountry,
String PostalAddress, String PostalCity, String PostalZipcode, String PostalCountry){
super();
this.Name = Name;
this.Phone = Phone;
this.Email = Email;
this.URL = URL;
this.Turnover = Turnover;
this.VisitAddress = VisitAddress;
this.VisitCity = VisitCity;
this.VisitZipcode = VisitZipcode;
this.VisitCountry = VisitCountry;
this.PostalAddress = PostalAddress;
this.PostalCity = PostalCity;
this.PostalZipcode = PostalZipcode;
this.PostalCountry = PostalCountry;
}

public void add(){
Contactlist.add(new Contacts("Oscar", "Hugo", "Bokhorst", "Developer", "0616397853", "0513631325", "[email protected]"));
int sizeCheck = Contactlist.size();
Log.d("Hello", "=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f=f = contactlist size = " + sizeCheck);

}

public String getName() {
return Name;
}

public String getPhone() {
return Phone;
}

public String getEmail() {
return Email;
}

public String getURL() {
return URL;
}

public Double getTurnover() {

return Turnover;
}

public String getVisitAddress() {
return VisitAddress;
}

public String getVisitCity() {
return VisitCity;
}

public String getVisitZipcode() {
return VisitZipcode;
}

public String getVisitCountry() {
return VisitCountry;
}

public String getPostalAddress() {
return PostalAddress;
}

public String getPostalCity() {
return PostalCity;
}

public String getPostalZipcode() {
return PostalZipcode;
}

public String getPostalCountry() {
return PostalCountry;
}

public List getContactlist(){
return Contactlist;
}
}
< /code>
Где я хочу добавить контакты в клиент (ATM все еще идет в отдельный массив, но они должны быть связаны с клиентом) < /p>
package Main.Fragments;

import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.example.hunteronlinebeta.app.R;
import Main.Arrays.ClientsArray;
import Main.Arrays.ContactsArray;
import Main.Objects.Clients;
import Main.Objects.Contacts;

public class AddContactsFragment extends Fragment implements OnClickListener {

ContactsArray conray = new ContactsArray();
ClientsArray cray = new ClientsArray();
private int clientLocation;
FragmentManager manager;
FragmentTransaction transaction;
Button submitContactsBtn;
Button clearContactsFieldsBtn;

public AddContactsFragment() {
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
manager = getFragmentManager();
transaction = manager.beginTransaction();

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_add_contacts,
container, false);

submitContactsBtn = (Button) rootView.findViewById(R.id.btn_submit_contact);
submitContactsBtn.setOnClickListener(this);

clearContactsFieldsBtn = (Button) rootView.findViewById(R.id.clearContactsFieldsBtn);
clearContactsFieldsBtn.setOnClickListener(this);

return rootView;
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.clearContactsFieldsBtn:
AddContactsFragment acf = new AddContactsFragment();
transaction.addToBackStack(null);
transaction.replace(R.id.group, acf, "addconfrag");
transaction.commit();
break;

case R.id.btn_submit_contact:

Clients currentClient = cray.ClientsArray.get(clientLocation);

EditText editFirstName = (EditText) getActivity().findViewById(R.id.view_contact_firstname);
final String etFirstName = editFirstName.getText().toString();

EditText editMiddleName = (EditText) getActivity().findViewById(R.id.view_contact_middleName);
final String etMiddleName = editMiddleName.getText().toString();

EditText editSurname = (EditText) getActivity().findViewById(R.id.view_contact_surname);
final String etSurname = editSurname.getText().toString();

EditText editPhone = (EditText) getActivity().findViewById(R.id.view_contact_phone);
final String etPhone = editPhone.getText().toString();

EditText editMobile = (EditText) getActivity().findViewById(R.id.view_contact_mobile);
final String etMobile = editMobile.getText().toString();

EditText editEmail = (EditText) getActivity().findViewById(R.id.view_contact_email);
final String etEmail = editEmail.getText().toString();

EditText editPosition = (EditText) getActivity().findViewById(R.id.view_contact_position);
final String etPosition = editPosition.getText().toString();

if (etFirstName.trim().equals("") |
etMiddleName.trim().equals("") |
etSurname.trim().equals("") |
etMobile.trim().equals("") |
etPhone.trim().equals("") |
etEmail.trim().equals("") |
etPosition.trim().equals("")) {

Toast.makeText(this.getActivity(), "Plz fill in the fields", Toast.LENGTH_LONG).show();

} else {
Contacts contact = new Contacts(etFirstName, etMiddleName, etSurname, etPosition, etPhone, etMobile, etEmail);

conray.ContactsArray.add(contact);

ViewClientsFragment vcf = new ViewClientsFragment();
transaction.replace(R.id.group, vcf, "viewcfrag");
transaction.commit();
}
break;
}
}

public void setLocation(int location) {
this.clientLocation = location;

return;
}
}
< /code>
место, где я просматриваю свой клиент с списком контактов, где я устанавливаю местоположение клиента и привожу его в AddContactSfragment. < /p>
package Main.Fragments;

import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.app.ListFragment;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.*;
import android.view.View.OnClickListener;
import android.view.View.MeasureSpec;
import app.R;
import Main.Adapters.ContactsAdapter;
import Main.Arrays.ClientsArray;
import Main.Arrays.ContactsArray;
import Main.Objects.Clients;

public class ViewClientsFragment extends ListFragment implements OnClickListener {

ClientsArray cray = new ClientsArray();
ContactsArray conray = new ContactsArray();
AddContactsFragment adconfrag = new AddContactsFragment();
FragmentTransaction transaction;
FragmentManager manager;
private int clientlocation;
private int contactlocation;
Button editClientsButton;
Button addContactsButton;

public ViewClientsFragment(){
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
manager = getFragmentManager();
View rootView = inflater.inflate(R.layout.fragment_view_clients,
container, false);

transaction = manager.beginTransaction();

editClientsButton = (Button) rootView.findViewById(R.id.btn_edit_client);
editClientsButton.setOnClickListener(this);

addContactsButton = (Button) rootView.findViewById(R.id.btn_add_contact);
addContactsButton.setOnClickListener(this);

ListView clientList = (ListView) rootView.findViewById(android.R.id.list);

//--------------------------------------------------------------------------------------------------------------
int x = conray.ContactsArray.size();
String checkSize = String.valueOf(x);
Log.d("hello", "-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x- has the list bin populated:" + checkSize);
//--------------------------------------------------------------------------------------------------------------

setListViewHeightBasedOnChildren(clientList);

Clients currentClient = cray.ClientsArray.get(clientlocation);

Log.d("hello", "0000000000000000000000000000000000000000000000 clientlocation = " + clientlocation);

TextView viewName = (TextView) rootView.findViewById(R.id.view_company_name);
viewName.setText(currentClient.getName());

TextView viewPhone = (TextView)rootView.findViewById(R.id.view_phone);
viewPhone.setText(currentClient.getPhone());

TextView viewEmail = (TextView)rootView.findViewById(R.id.view_Email);
viewEmail.setText(currentClient.getEmail());

TextView viewURL = (TextView)rootView.findViewById(R.id.view_url);
viewURL.setText(currentClient.getURL());

TextView viewTurnover = (TextView)rootView.findViewById(R.id.view_turnover);
viewTurnover.setText(String.valueOf(currentClient.getTurnover()));

TextView viewVisitAddress = (TextView)rootView.findViewById(R.id.view_visit_address);
viewVisitAddress.setText(currentClient.getVisitAddress());

TextView viewVisitCity = (TextView)rootView.findViewById(R.id.view_visit_city);
viewVisitCity.setText(currentClient.getVisitCity());

TextView viewVisitZipcode = (TextView)rootView.findViewById(R.id.view_visit_zipcode);
viewVisitZipcode.setText(currentClient.getVisitZipcode());

TextView viewVisitCountry = (TextView)rootView.findViewById(R.id.view_visit_country);
viewVisitCountry.setText(currentClient.getVisitCountry());

TextView viewPostalAddress = (TextView)rootView.findViewById(R.id.view_postal_address);
viewPostalAddress.setText(currentClient.getPostalAddress());

TextView viewPostalCity = (TextView)rootView.findViewById(R.id.view_postal_city);
viewPostalCity.setText(currentClient.getPostalCity());

TextView viewPostalZipcode = (TextView)rootView.findViewById(R.id.view_postal_zipcode);
viewPostalZipcode.setText(currentClient.getPostalZipcode());

TextView viewPostalCountry = (TextView)rootView.findViewById(R.id.view_postal_country);
viewPostalCountry.setText(currentClient.getPostalCountry());

return rootView;
}

public void setLocation(int location) {
this.clientlocation = location;
}

public void setListViewHeightBasedOnChildren(ListView listView) {
ArrayAdapter adapter = new ContactsAdapter(this.getActivity(), conray.ContactsArray);
if (adapter == null)
return;

int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(), MeasureSpec.UNSPECIFIED);
int totalHeight = 0;
View view = null;
for (int i = 0; i < adapter.getCount(); i++) {
view = adapter.getView(i, view, listView);
if (i == 0)
view.setLayoutParams(new ViewGroup.LayoutParams(desiredWidth, ViewGroup.LayoutParams.WRAP_CONTENT));

view.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
totalHeight += view.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (conray.ContactsArray.size() - 1));
listView.setLayoutParams(params);
listView.setAdapter(adapter);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
ViewContactsFragment vconf = new ViewContactsFragment();
transaction.addToBackStack(null);
transaction.replace(R.id.group, vconf, "vconfrag");
contactlocation = position;
vconf.setLocation(contactlocation);
transaction.commit();
}

@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_edit_client:
Toast.makeText(this.getActivity(), "Pressed the edit Client button", Toast.LENGTH_LONG).show();
break;
case R.id.btn_add_contact:
AddContactsFragment acf = new AddContactsFragment();
transaction.addToBackStack(null);
transaction.replace(R.id.group, acf, "aconfrag");
acf.setLocation(clientlocation);
transaction.commit();
break;
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/359 ... tom-object
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»