@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_classic_scramble_adapter_example); mListView = (ListView) findViewById(R.id.list); new SimpleStringViewHolderFactory(), new SimpleNumberViewHolderFactory(), new CodeLableViewHolderFactory(getResources()) ); mListView.setAdapter(adapter);
@Override public void onClick(@NonNull AdapterView<?> adapterView, @NonNull AdapterConverter adapter, int position, @NonNull RecyclerView.ViewHolder vh, @NonNull View view) { if (adapterView.getId() == R.id.list) { if (vh instanceof SimpleStringViewHolderFactory.ViewHolder) { String item = (String) adapter.getItem(position); mSnackbarLogic.make(vh.itemView, "String " + item + " is clicked.", Snackbar.LENGTH_SHORT).show(); } else if (vh instanceof SimpleNumberViewHolderFactory.ViewHolder) { Number item = (Number) adapter.getItem(position); mSnackbarLogic.make(vh.itemView, "Number " + item + " is clicked.", Snackbar.LENGTH_SHORT).show(); } else if (vh instanceof CodeLableViewHolderFactory.ViewHolder) { OrdinalLabel item = (OrdinalLabel) adapter.getItem(position); String text = item.getLabel(getResources()) + "(" + item.getCode() + ")"; if (view.getId() == R.id.text_code) { mSnackbarLogic.make(vh.itemView, "The code of " + text + " is clicked.", Snackbar.LENGTH_SHORT).show(); } else if (view.getId() == R.id.text_label) { mSnackbarLogic.make(vh.itemView, "The label of " + text + " is clicked.", Snackbar.LENGTH_SHORT).show(); } } } }
@Override public boolean onLongClick(@NonNull AdapterView<?> adapterView, @NonNull AdapterConverter adapter, int position, @NonNull RecyclerView.ViewHolder vh, @NonNull View view) { if (adapterView.getId() == R.id.list) { if (vh instanceof SimpleStringViewHolderFactory.ViewHolder) { String item = (String) adapter.getItem(position); mSnackbarLogic.make(view, "String " + item + " is long clicked.", Snackbar.LENGTH_SHORT).show(); } else if (vh instanceof SimpleNumberViewHolderFactory.ViewHolder) { Number item = (Number) adapter.getItem(position); mSnackbarLogic.make(view, "Number " + item + " is long clicked.", Snackbar.LENGTH_SHORT).show(); } else if (vh instanceof CodeLableViewHolderFactory.ViewHolder) { OrdinalLabel item = (OrdinalLabel) adapter.getItem(position); String text = item.getLabel(getResources()) + "(" + item.getCode() + ")"; if (view.getId() == R.id.text_code) { mSnackbarLogic.make(view, "The code of " + text + " is long clicked.", Snackbar.LENGTH_SHORT).show(); } else if (view.getId() == R.id.text_label) { mSnackbarLogic.make(view, "The label of " + text + " is long clicked.", Snackbar.LENGTH_SHORT).show(); } } return true; } return false; } };
onView(withIdInAdapterView(R.id.text_code, R.id.list, entry.index)).perform(click()); Resources res = activity.getResources(); verify(activity.mSnackbarLogic).make(any(View.class), contains(String.valueOf(entry.object.getLabel(res))), anyInt());