Dynamically add items in list view

前端 未结 3 1821
南旧
南旧 2020-12-15 02:04

I want to make a dynamic list view which gets the user credentials when I login for the first time and displays it in a list the next time I start the app. I know how to sen

相关标签:
3条回答
  • 2020-12-15 02:40

    For this Just use the example given below: For Instance you are Adding Some Strings into your List

    So Create a ListArray like this

    ArrayList<String> listItems = new ArrayList<String>();
    

    now whenever you want to add certain string into list just do this thing

      EditText editText = (EditText) findViewById(R.id.edit);
      listItems.add("my string");  OR
      listItems.add(editText.getText.toString()); //incase if you are getting string value from editText and adding it into the list
    

    Use this Xml inside your linear layout in main.xml

      <EditText android:id="@+id/edit"
         android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>
    

    Now when you have added one item dynamically then call this

      adapter.notifyDataSetChanged();
    

    The above will update your list and display the upadted list.

    For more info about this see the following links:

    http://www.androidpeople.com/android-custom-listview-tutorial-part-1
    http://www.androidpeople.com/android-custom-listview-tutorial-part-2
    http://www.androidpeople.com/android-custom-dynamic-listview-%E2%80%93part3

    In these tutorials you can replace String[] with ArrayList as given at the top of the answer ook and when you want to add any item just simply use the second code snippet.

    Thanks
    sHaH

    0 讨论(0)
  • 2020-12-15 02:49

    You can try out this code to add elements dynamically to list view. You can do it with out button click also.

    import java.util.ArrayList;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ListView;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
        //step2 : create all the variables.
        EditText et;
        Button b;
        ListView lv;
        ArrayList<string> al;
        ArrayAdapter<string> aa;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //step3 : intitalize all the variables.
            et = (EditText) findViewById(R.id.editText1);
            b = (Button) findViewById(R.id.button1);
            lv = (ListView) findViewById(R.id.listView1);
            al = new ArrayList<string>();//initialize array list
            aa = new ArrayAdapter<string>(this, 
                    android.R.layout.simple_list_item_1, 
                    al);//step4 : establish communication bw arraylist and adapter
            //step5 : establish communication bw adapter and dest (listview)
            lv.setAdapter(aa);
            lv.setOnItemClickListener(new OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView parent, 
                        View v, int arg2,
                        long arg3) {
                    String item = al.get(arg2);
                    Toast.makeText(getApplicationContext(), item, 0).show();
                }
            });
            //step6 : button click logic
            b.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    //step i: take text from et and add to arraylist
                    String item = et.getText().toString();
                    al.add(0, item);
                    //step ii: notify to adapter
                    aa.notifyDataSetChanged();
                    //step iii: clr edit text
                    et.setText("");
                }
            });
        }
    }
    

    For complete code check this list view example

    0 讨论(0)
  • 2020-12-15 02:56

    The best way to do this will be to use ArrayAdapter. When modifying the adapter it automatically refresh itself so you don't have to call notifyDataSetChanged.

    0 讨论(0)
提交回复
热议问题