@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_spinner_tree_item_adapter_example); // find views mSpinner = (Spinner) findViewById(R.id.spinner); // bind event handlers mSpinner.setOnItemSelectedListener(this); { // set adapter List<MyTreeItem> items = ExampleDataGenerator.generateMyTreeItem(Arrays.asList(5, 3, 2), 0); mAdapterConverter = new AdapterConverterEx(); SpinnerMyTreeItemAdapter adapter = new SpinnerMyTreeItemAdapter(this, items) { @NonNull @Override public ForwardingListener<SpinnerMyTreeItemAdapter, ViewHolder> createForwardingListener() { return new ClassicForwardingListener<>(mAdapterConverter, mListenerRelay); } }; mAdapterConverter.setOriginal(adapter); // Issue: Spinner Doesn't Allow Heterogeneous ListAdapters in Lollipop. // https://code.google.com/p/android/issues/detail?id=79011 mAdapterConverter.setRecyclingDisabled(true); mSpinner.setAdapter(mAdapterConverter); mSpinner.setSelection(1); } }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // find views mRecyclerView = (RecyclerView) findViewById(R.id.recycler); ActivityEntryAdapter adapter = new ActivityEntryAdapter(this, ACTIVITY_ENTRIES); adapter.setListenerRelay(mListenerRelay); mRecyclerView.setAdapter(adapter); mRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)); } }
@Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { switch (buttonView.getId()) { case R.id.check_fizz: case R.id.check_buzz: { refreshViewHolderFactory(); break; } default: { // ignore break; } } }
@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 void onClick(@NonNull RecyclerView recyclerView, @NonNull ScrambleAdapter adapter, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull View view) { if (recyclerView.getId() == R.id.recycler) { if (viewHolder instanceof SimpleStringViewHolderFactory.ViewHolder) { String item = (String) adapter.getItemAt(viewHolder.getAdapterPosition()); mSnackbarLogic.make(viewHolder.itemView, "String " + item + " is clicked.", Snackbar.LENGTH_SHORT).show(); } else if (viewHolder instanceof SimpleNumberViewHolderFactory.ViewHolder) { Number item = (Number) adapter.getItemAt(viewHolder.getAdapterPosition()); mSnackbarLogic.make(viewHolder.itemView, "Number " + item + " is clicked.", Snackbar.LENGTH_SHORT).show(); } else if (viewHolder instanceof CodeLableViewHolderFactory.ViewHolder) { OrdinalLabel item = (OrdinalLabel) adapter.getItemAt(viewHolder.getAdapterPosition()); String text = item.getLabel(getResources()) + "(" + item.getCode() + ")"; if (view.getId() == R.id.text_code) { mSnackbarLogic.make(viewHolder.itemView, "The code of " + text + " is clicked.", Snackbar.LENGTH_SHORT).show(); } else if (view.getId() == R.id.text_label) { mSnackbarLogic.make(viewHolder.itemView, "The label of " + text + " is clicked.", Snackbar.LENGTH_SHORT).show(); } } } }
@Override public void onClick(@NonNull RecyclerView recyclerView, @NonNull ScrambleAdapter adapter, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull View view) { if (recyclerView.getId() == R.id.recycler_nested) { String row = "Row=" + mAdapter.getItems().indexOf(item); if (viewHolder instanceof SimpleStringViewHolderFactory.ViewHolder) { String item = (String) adapter.getItemAt(viewHolder.getAdapterPosition()); mSnackbarLogic.make(viewHolder.itemView, row + ", String " + item + " is clicked.", Snackbar.LENGTH_SHORT).show(); } else if (viewHolder instanceof SimpleNumberViewHolderFactory.ViewHolder) { Number item = (Number) adapter.getItemAt(viewHolder.getAdapterPosition()); mSnackbarLogic.make(viewHolder.itemView, row + ", Number" + item + "is clicked.", Snackbar.LENGTH_SHORT).show(); } else if (viewHolder instanceof CodeLableViewHolderFactory.ViewHolder) { OrdinalLabel item = (OrdinalLabel) adapter.getItemAt(viewHolder.getAdapterPosition()); String text = item.getLabel(getResources()) + "(" + item.getCode() + ")"; if (view.getId() == R.id.text_code) { mSnackbarLogic.make(viewHolder.itemView, row + ", The code of " + text + " is clicked.", Snackbar.LENGTH_SHORT).show(); } else if (view.getId() == R.id.text_label) { mSnackbarLogic.make(viewHolder.itemView, row + ", The label of " + text + " is clicked.", Snackbar.LENGTH_SHORT).show(); } } } }
@Override public void onClick(@NonNull RecyclerView recyclerView, @NonNull ActivityEntryAdapter adapter, @NonNull ActivityEntryAdapter.ViewHolder viewHolder, @NonNull View view) { if (recyclerView.getId() == R.id.recycler) { ActivityEntryAdapter.WrappedItem wrappedItem = adapter.getItemAt(viewHolder.getAdapterPosition()); ActivityEntry entry = wrappedItem.getItem(); if (entry != null && entry.getClazz() != null) { Intent intent = new Intent(MainActivity.this, entry.getClazz()); startActivity(intent); } else { adapter.doOpen(wrappedItem, !wrappedItem.isOpened()); } } } };
@Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { if (parent.getId() == R.id.spinner) { OrdinalLabel item = (OrdinalLabel) parent.getItemAtPosition(position); String text = (item != null) ? item.getLabel(getResources()) : "null"; mSnackbarLogic.make(view, text + " is selected.", Snackbar.LENGTH_SHORT).show(); } }
@Test public void clickSpinner() { CodeLabelExampleActivity activity = mActivityTestRule.launchActivity(null); activity.mSnackbarLogic = spy(new MockSnackbarLogic()); for (OrdinalLabel item : OrdinalLabel.values()) { onView(withId(R.id.spinner)).perform(click()); onData(is(item)).perform(click()); Resources res = activity.getResources(); verify(activity.mSnackbarLogic).make(any(View.class), contains(item.getLabel(res)), anyInt()); } } }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_tree_item_adapter); // find views mRecyclerView = (RecyclerView) findViewById(R.id.recycler); { // set adapter List<MyTreeItem> items = ExampleDataGenerator.generateMyTreeItem(Arrays.asList(5, 3, 2), 0); MyTreeItemAdapter adapter = new MyTreeItemAdapter(this, items); adapter.setListenerRelay(mListenerRelay); mRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)); mRecyclerView.setAdapter(adapter); } } }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_single_choosable_tree_item_adapter); // find views mRecyclerView = (RecyclerView) findViewById(R.id.recycler); // bind event handlers findViewById(R.id.button_ok).setOnClickListener(this); { // set adapter List<MyTreeItem> items = ExampleDataGenerator.generateMyTreeItem(Arrays.asList(5, 3, 2), 0); mAdapter = new ChoosableMyTreeItemAdapter(this, items); mAdapter.setChoiceMode(AbsChoosableTreeItemAdapter.CHOICE_MODE_MULTIPLE); mRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)); mRecyclerView.setAdapter(mAdapter); } }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_single_choosable_tree_item_adapter); // find views mRecyclerView = (RecyclerView) findViewById(R.id.recycler); // bind event handlers findViewById(R.id.button_ok).setOnClickListener(this); { // set adapter List<MyTreeItem> items = ExampleDataGenerator.generateMyTreeItem(Arrays.asList(5, 3, 2), 0); mAdapter = new ChoosableMyTreeItemAdapter(this, items); mAdapter.setChoiceMode(AbsChoosableTreeItemAdapter.CHOICE_MODE_SINGLE); mRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)); mRecyclerView.setAdapter(mAdapter); } }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_code_label_example); // find views mSpinner = (Spinner) findViewById(R.id.spinner); // set adapter mSpinner.setAdapter(CodeLabelAdapter.newInstance(this, OrdinalLabel.values(), true)); mSpinner.setSelection(0, false); // bind event handlers mSpinner.setOnItemSelectedListener(this); }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_string_with_payload_example); // find views mRecyclerView = (RecyclerView) findViewById(R.id.recycler); { // set adapter List<String> items = new ArrayList<>(); for (int i = 0; i < 100; i++) { items.add("item " + i); } mAdapter = new ScrambleAdapter<String>(this, items, mListenerRelay, new StringWithPayloadViewHolderFactory()); mRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)); mRecyclerView.setItemAnimator(new FlashColorItemAnimator()); mRecyclerView.setAdapter(mAdapter); } } }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_simple_string_example); // find views mRecyclerView = (RecyclerView) findViewById(R.id.recycler); { // set adapter List<String> items = new ArrayList<>(); for (int i = 0; i < 100; i++) { items.add("item " + i); } SimpleStringAdapter adapter = new SimpleStringAdapter(this, items, mListenerRelay); mRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)); mRecyclerView.setAdapter(adapter); } } }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_simple_string_example); // find views mRecyclerView = (RecyclerView) findViewById(R.id.recycler); { // set adapter List<String> items = new ArrayList<>(); for (int i = 0; i < 100; i++) { items.add("item " + i); } ComplexStringAdapter adapter = new ComplexStringAdapter(this, items, mListenerRelay); mRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)); mRecyclerView.setAdapter(adapter); } } }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_vertical_divider_example); // find views mRecyclerView = (RecyclerView) findViewById(R.id.recycler); { // set adapter List<String> items = new ArrayList<>(); for (int i = 0; i < 100; i++) { items.add("item " + i); } SimpleStringAdapter adapter = new SimpleStringAdapter(this, items, null); mRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)); mRecyclerView.setAdapter(adapter); mRecyclerView.addItemDecoration(new VerticalListDividerItemDecoration(this, false, R.drawable.vertical_list_divider_rgb)); } } }
private List<ActivityEntry> pullDataPoints(List<ActivityEntry> dest, List<ActivityEntry> entries) { for (ActivityEntry entry : entries) { dest.add(entry); if (entry.getChildren() != null) { pullDataPoints(dest, entry.getChildren()); } } return dest; } }
@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; } };
@Override public boolean onLongClick(@NonNull RecyclerView recyclerView, @NonNull ScrambleAdapter adapter, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull View view) { if (recyclerView.getId() == R.id.recycler) { if (viewHolder instanceof SimpleStringViewHolderFactory.ViewHolder) { String item = (String) adapter.getItemAt(viewHolder.getAdapterPosition()); mSnackbarLogic.make(view, "String " + item + " is long clicked.", Snackbar.LENGTH_SHORT).show(); } else if (viewHolder instanceof SimpleNumberViewHolderFactory.ViewHolder) { Number item = (Number) adapter.getItemAt(viewHolder.getAdapterPosition()); mSnackbarLogic.make(view, "Number " + item + " is long clicked.", Snackbar.LENGTH_SHORT).show(); } else if (viewHolder instanceof CodeLableViewHolderFactory.ViewHolder) { OrdinalLabel item = (OrdinalLabel) adapter.getItemAt(viewHolder.getAdapterPosition()); 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; } };