This is the problem. It is not possible to update the list after adding a row to the database.
Here the list is displayed and the context menu is called for it.
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_admin); ListView lv= (ListView) findViewById(R.id.lv); registerForContextMenu(lv); MyAdapter adapter=new MyAdapter(); adapter.notifyDataSetChanged(); adapter.context= this; adapter.list=GlobalVar.users; lv.setAdapter(adapter); } @Override public boolean onContextItemSelected(MenuItem item) { if (item.getItemId()==R.id.dob) { Intent intent= new Intent(AdminActivity.this,RegActivity.class); startActivity(intent); } return super.onContextItemSelected(item); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); MenuInflater inflater= getMenuInflater(); inflater.inflate(R.menu.menu,menu); } class MyAdapter extends BaseAdapter { ArrayList<User> list; Context context; @Override public int getCount() { return list.size(); } @Override public User getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return list.get(position).getId(); } @Override public View getView(int position, View convertView, ViewGroup parent) { View con= convertView; if(con== null) { LayoutInflater inflater= (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); con= inflater.inflate(R.layout.list_item,parent,false); } TextView loginTxt= (TextView) con.findViewById(R.id.userloginTxt); TextView nameTxt= (TextView) con.findViewById(R.id.usernameTxt); TextView passwordTxt= (TextView) con.findViewById(R.id.userpasswordTxt); loginTxt.setText(list.get(position).getLogin()); nameTxt.setText(list.get(position).getName()); passwordTxt.setText(list.get(position).getPassword()); return con; } } }
and here comes the addition of a new
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_reg); final EditText nameReg= (EditText) findViewById(R.id.editReg); final EditText passReg= (EditText) findViewById(R.id.editReg2); final EditText passReg2= (EditText) findViewById(R.id.editReg3); final EditText loginReg=(EditText) findViewById(R.id.editReg4); Button btnReg= (Button) findViewById(R.id.btmReg); Button btnReg2=(Button) findViewById(R.id.btmReg2); btnReg2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); btnReg.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { User user= new User(); user.setLogin(loginReg.getText().toString()); user.setPassword(passReg.getText().toString()); user.setName(nameReg.getText().toString()); if (SaveData(user)) { finish(); } else { Toast.makeText(RegActivity.this,"Ошибка", Toast.LENGTH_LONG).show(); } } }); } boolean SaveData(User user) { DBHelper helper= new DBHelper(this); SQLiteDatabase db= helper.getWritableDatabase(); ContentValues cv= new ContentValues(); cv.put("login", user.getLogin()); cv.put("password", user.getPassword()); cv.put("name", user.getName()); long rowId= db.insert("user",null,cv); if (rowId>0) { return true; } return false; } What should be done so that after adding the list with data is updated ???