title: how to get ID of the items in recyclerview
body: <p>i'm using slide to delete from recyclerview but the problem comes when getAdapterPosition() doesn't match with the row_id of sql table. how can i get id from the adapter and how to update recyclerview when the data is added(it doesn't display new data until i reopen the app or change orientation) ?</p>
  
  <p>public class MainActivity extends AppCompatActivity {</p>
  
  <pre><code>RecyclerView mRecyclerView;
  MyAdapter myAdapter;
  ImageButton floatButton;
  
  DbHelper dbHelper;
  
  ArrayList&lt;Information&gt; data;
  
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
  
  
      floatButton = (ImageButton) findViewById(R.id.imageButton);
      floatButton.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              Intent intent = new Intent(MainActivity.this, AddDetailPage.class);
              MainActivity.this.startActivity(intent);
          }
      });
  
  
      dbHelper = new DbHelper(this);
  
      data = new ArrayList&lt;&gt;();
  
      mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView);
      myAdapter = new MyAdapter(this, showData());
  
  
      mRecyclerView.setAdapter(myAdapter);
      mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
  
  
      ItemTouchHelper helper = new ItemTouchHelper(createHelperCallback());
      helper.attachToRecyclerView(mRecyclerView);
  }
  
  private ItemTouchHelper.Callback createHelperCallback() {
      ItemTouchHelper.SimpleCallback simpleItemCallback = new ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP | ItemTouchHelper.DOWN, ItemTouchHelper.LEFT |
              ItemTouchHelper.RIGHT) {
          @Override
          public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
              return false;
          }
  
          @Override
          public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
              deleteItem(viewHolder.getAdapterPosition());
          }
      };
      return simpleItemCallback;
  }
  
  
  public ArrayList&lt;Information&gt; showData() {
      Cursor res = dbHelper.showData();
      while (res.moveToNext()) {
          Information information = new Information();
          information.ID = res.getString(0);
          information.first = res.getString(0);
          information.second = res.getString(2);
          information.detail = res.getString(3);
          data.add(information);
      }
      return data;
  }
  
  public void deleteItem(int position){
      DbHelper dbHelper = new DbHelper(this);
      dbHelper.delete(position);
  
  
      myAdapter.notifyItemRemoved(position);
  
      myAdapter.delete(position);
  }
  </code></pre>
  
  <p>}</p>
  
  <p>public class MyAdapter extends RecyclerView.Adapter {</p>
  
  <pre><code>private MainActivity mainactivity;
  private ArrayList&lt;Information&gt; data;
  private LayoutInflater layoutInflater;
  
  public MyAdapter(MainActivity mainActivity, ArrayList&lt;Information&gt; information) {
      this.mainactivity = mainActivity;
      this.data = information;
      layoutInflater = LayoutInflater.from(mainActivity);
      notifyDataSetChanged();
  }
  
  
  @Override
  public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
      View view = layoutInflater.inflate(R.layout.list_item, parent, false);
      return new ViewHolder(view, data);
  }
  
  
  @Override
  public void onBindViewHolder(MyAdapter.ViewHolder holder, int position) {
      holder.first.setText(data.get(position).first);
      holder.second.setText(data.get(position).second);
      holder.detail.setText(data.get(position).detail);
  
  }
  
  @Override
  public int getItemCount() {
      return data.size();
  }
  
  public class ViewHolder extends RecyclerView.ViewHolder{
  
      TextView first, second, detail;
      ArrayList&lt;Information&gt; info;
  
  
      public ViewHolder(View itemView, ArrayList&lt;Information&gt; data) {
          super(itemView);
  
          this.info = data;
  
          first = (TextView) itemView.findViewById(R.id.firstText);
          second = (TextView) itemView.findViewById(R.id.secondText);
          detail = (TextView) itemView.findViewById(R.id.detail);
      }
  
  }
  
  public void delete(int x){
      data.remove(x);
      notifyDataSetChanged();
  }
  </code></pre>
  
  <p>}</p>
  
  <p>public class DbHelper extends SQLiteOpenHelper {</p>
  
  <pre><code>public static final String DATABASE_NAME = "students.db";
  public static final String TABLE_NAME = "student_table";
  public static final String ID = "_id";
  public static final String FIRST_NAME = "first_name";
  public static final String SECOND_NAME = "second_name";
  public static final String DETAIL = "detail";
  
  public DbHelper(Context context) {
      super(context, DATABASE_NAME, null, 1);
  }
  
  @Override
  public void onCreate(SQLiteDatabase db) {
      db.execSQL("CREATE TABLE " + TABLE_NAME + "( " + ID + " INTEGER PRIMARY KEY AUTOINCREMENT ," + FIRST_NAME + " TEXT ," + SECOND_NAME + " TEXT ," + DETAIL + " TEXT );");
  }
  
  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
      db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
      onCreate(db);
  }
  
  public boolean insertData(String first, String second, String detail) {
      SQLiteDatabase db = this.getWritableDatabase();
  
      ContentValues contentValues = new ContentValues();
      contentValues.put(FIRST_NAME, first);
      contentValues.put(SECOND_NAME, second);
      contentValues.put(DETAIL, detail);
      long x = db.insert(TABLE_NAME, null, contentValues);
  
      if (x == -1) {
          return false;
      } else {
          return true;
      }
  
  
  }
  
  public Cursor showData() {
      SQLiteDatabase db = this.getWritableDatabase();
      Cursor res = db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
      return res;
  }
  
  public void delete(int x) {
      int y = x + 1;
      SQLiteDatabase db = this.getWritableDatabase();
      db.delete(TABLE_NAME, ID + "=" + y, null);
  }
  </code></pre>
  
  <p>}</p>