0

How do I apply this(Click This Link) to my application? Thank you!

Log Cat:

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.get(ArrayList.java:437)
    at com.example.workhours.view_hours$1.onSwiped(view_hours.java:65)

Code:

This is the line where the error occurred:

(line: 65) final String x = listShift.get(viewHolder.getAdapterPosition()).getDate();

Additional Information:

public class MainActivity extends AppCompatActivity implements View.OnClickListener{


ArrayList<newNote> list;

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

    list = new ArrayList<>();
}

3 Answers3

1

Here is how you can handle the exception, use ternary operator:

final String x = listShift.size() < viewHolder.getAdapterPosition()+1 ? null: listShift.get(viewHolder.getAdapterPosition()).getDate();
Bilal Siddiqui
  • 3,579
  • 1
  • 13
  • 20
0

Step 1:Print/Check the value returned by viewHolder.getAdapterPosition()

Step 2:Check the size of List by listShift.size()

Reason why is it happening:

  1. Value of viewHolder.getAdapterPosition() < 0
  2. Value of viewHolder.getAdapterPosition() > listShift.size()
  3. List is empty
ankit giri
  • 388
  • 3
  • 11
0

You need to initialize adapter if list is not empty. The Code that initializing adapter, adding list is not empty check worked me.

var list = ArrayList<String>()
list.add(item)
if(listArr.isNotEmpty()){
     adapter = Adapter(listArr)
}