简体   繁体   English

如何将元素添加到另一个类的列表中?

[英]How to add elements to a list from another class?

So i have my a list on my main activity that i want to be able to access in another class.所以我有一个关于我的主要活动的列表,我希望能够在另一个类中访问它。 The second class is supposed to add more records to the list based on the users input but i don't know how to access it.第二类应该根据用户输入向列表中添加更多记录,但我不知道如何访问它。 Can anybody help?有人可以帮忙吗?

Contactos.java: This is my main class and its also where the list is kept, i did a test run on it so that's why the constructor is filled with numbers. Contactos.java:这是我的主类,它也是保存列表的地方,我对它进行了测试,所以这就是构造函数充满数字的原因。 I want to be able to add to the list from another class.我希望能够从另一个班级添加到列表中。

public class Contactos extends AppCompatActivity {

    private Button btnReciente;

    private ListView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnReciente = (Button) findViewById(R.id.Reciente);
        listView = (ListView) findViewById(R.id.list1);

        List<contactosLista> list1 = new ArrayList<contactosLista>();
        list1.add(new contactosLista("1","2","3","4","5","6"));

        ContactosAdapter adapter = new ContactosAdapter(this,list1);
        listView.setAdapter(adapter);

ContactosAdapter.java: This is where i inflate the list, i use it so i can use a.xml file to better display the values in the list. ContactosAdapter.java:这是我扩充列表的地方,我使用它以便我可以使用 .xml 文件更好地显示列表中的值。

public class ContactosAdapter extends BaseAdapter
{
    private Context mContext;
    private List<contactosLista>mListaContactos;

    public ContactosAdapter(Context context, List<contactosLista> list)
    {
        mContext = context;
        mListaContactos = list;
    }

    @Override
    public int getCount() {
        return mListaContactos.size();
    }

    @Override
    public Object getItem(int position) {
        return mListaContactos.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        contactosLista entrada = mListaContactos.get(position);

        if(convertView == null)
        {
            LayoutInflater inflater = LayoutInflater.from(mContext);
            convertView = inflater.inflate(R.layout.contactos_row,null);
        }

        TextView Contact = (TextView) convertView.findViewById(R.id.Contacto);
        Contact.setText(entrada.getmName() + " -- " + entrada.getmEmpresa());

        return convertView;
    }
}

contactosLista.java: This the class that defines the elements that the list needs. contactosLista.java:这是定义列表所需元素的类。 i made a constructor that accommodates all the strings and made all the setters & getters我制作了一个可容纳所有字符串的构造函数并制作了所有 setter 和 getter

public class contactosLista
{
    private String mName;
    private String mEmpresa;
    private String mRazon;
    private String mDireccion;
    private String mEstatus;
    private String mPaquete;

    public contactosLista(String mName, String mEmpresa, String mRazon, String mDireccion, String mEstatus, String mPaquete)
    {
        this.mName = mName;
        this.mEmpresa = mEmpresa;
        this.mRazon = mRazon;
        this.mDireccion = mDireccion;
        this.mEstatus = mEstatus;
        this.mPaquete = mPaquete;
    }

    public String getmName() {
        return mName;
    }

    public void setmName(String mName) {
        this.mName = mName;
    }

    public String getmEmpresa() {
        return mEmpresa;
    }

    public void setmEmpresa(String mEmpresa) {
        this.mEmpresa = mEmpresa;
    }

    public String getmRazon() {
        return mRazon;
    }

    public void setmRazon(String mRazon) {
        this.mRazon = mRazon;
    }

    public String getmDireccion() {
        return mDireccion;
    }

    public void setmDireccion(String mDireccion) {
        this.mDireccion = mDireccion;
    }

    public String getmEstatus() {
        return mEstatus;
    }

    public void setmEstatus(String mEstatus) {
        this.mEstatus = mEstatus;
    }

    public String getmPaquete() {
        return mPaquete;
    }

    public void setmPaquete(String mPaquete) {
        this.mPaquete = mPaquete;
}
}

createContact.java: finally this is the class where i want to be able to access the list from Contactos.java, I have a layout file that has a bunch of Edit text so that i can record input from the user. createContact.java:最后这是我希望能够从 Contactos.java 访问列表的类,我有一个布局文件,其中包含一堆编辑文本,以便我可以记录用户的输入。 When the user clicks on the button to save i want my void "GuardarCon" to save the input from the user to strings and then i want to use those strings as parameters for my list.当用户单击按钮进行保存时,我希望我的无效“GuardarCon”将用户的输入保存到字符串中,然后我想将这些字符串用作我的列表的参数。 This is where the problem arises, i don't know how to call the list.这就是问题所在,我不知道如何调用列表。 PLS help.请帮助。

public class createContact extends AppCompatActivity
{
    EditText nombre;
    EditText empresa;
    EditText razon;
    EditText direccion;
    EditText estatus;
    EditText paquete;
    String snombre;
    String sempresa;
    String srazon;
    String sdireccion;
    String sestatus;
    String spaquete;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_create_contact);

        nombre = (EditText) findViewById(R.id.nombreT);
        empresa = (EditText) findViewById(R.id.empresaT);
        razon = (EditText) findViewById(R.id.razonSocialT);
        direccion = (EditText) findViewById(R.id.direccionT);
        estatus = (EditText) findViewById(R.id.EstatusT);
        paquete = (EditText) findViewById(R.id.paqueteT);
    }

    public void GuardarCon(View view)
    {
        snombre = nombre.getText().toString();
        sempresa = empresa.getText().toString();
        srazon = razon.getText().toString();
        sdireccion = direccion.getText().toString();
        sestatus = estatus.getText().toString();
        spaquete = paquete.getText().toString();

    }

Create a singleton class and access and modify data as you want !创建一个单例类并根据需要访问和修改数据!

public class DataHolder{
    public static final DataHolder instance = new DataHolder();
private List<Your_Data_Type> data;

//Your methods goes here...
}

You could use startActivityForResult method to start createContact from Contactos activity and after the addition process is done use setResult method to return the added item to the Contactos activity and handle adding the item to the list in onActivityResult .您可以使用startActivityForResult方法从Contactos活动启动createContact并在添加过程完成后使用setResult方法将添加的项目返回到Contactos活动并处理将项目添加到onActivityResult中的列表。
take a look at this link for further info:查看此链接以获取更多信息:

https://developer.android.com/training/basics/intents/resulthttps://developer.android.com/training/basics/intents/result

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM