ModeListAdapter.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package epson.scan.activity;
  2. import android.content.Context;
  3. import android.support.annotation.DrawableRes;
  4. import android.support.annotation.StringRes;
  5. import android.view.LayoutInflater;
  6. import android.view.View;
  7. import android.view.ViewGroup;
  8. import android.widget.BaseAdapter;
  9. import android.widget.ImageView;
  10. import android.widget.ListAdapter;
  11. import android.widget.TextView;
  12. import epson.print.R;
  13. public class ModeListAdapter extends BaseAdapter {
  14. private int mCurrentPosition;
  15. private LayoutInflater mLayoutInflater;
  16. @DrawableRes
  17. private int[] mLeftImageId;
  18. private int[] mStringIdArray;
  19. public long getItemId(int i) {
  20. return (long) i;
  21. }
  22. public ModeListAdapter(@NonNull Context context, @StringRes int[] iArr, int i) {
  23. mLayoutInflater = LayoutInflater.from(context);
  24. mStringIdArray = iArr;
  25. mCurrentPosition = i;
  26. mLeftImageId = null;
  27. }
  28. public ModeListAdapter(@NonNull Context context, @Nullable @StringRes int[] iArr, @DrawableRes int[] iArr2, int i) {
  29. mLayoutInflater = LayoutInflater.from(context);
  30. mStringIdArray = iArr == null ? new int[iArr2.length] : iArr;
  31. mCurrentPosition = i;
  32. mLeftImageId = iArr2;
  33. }
  34. public int getCount() {
  35. return mStringIdArray.length;
  36. }
  37. public Object getItem(int i) {
  38. return 0;
  39. }
  40. @UiThread
  41. public void setPosition(int i) {
  42. mCurrentPosition = i;
  43. int i2 = mCurrentPosition;
  44. if (i2 < 0) {
  45. mCurrentPosition = 0;
  46. } else if (i2 >= getCount()) {
  47. mCurrentPosition = getCount() - 1;
  48. }
  49. notifyDataSetChanged();
  50. }
  51. public int getPosition() {
  52. return mCurrentPosition;
  53. }
  54. public View getView(int i, View view, ViewGroup viewGroup) {
  55. int i2 = 0;
  56. if (view == null) {
  57. view = mLayoutInflater.inflate(R.layout.i2_scan_setting_item, viewGroup, false);
  58. }
  59. if (mLeftImageId != null) {
  60. ImageView imageView = (ImageView) view.findViewById(R.id.leftImageView);
  61. imageView.setImageResource(mLeftImageId[i]);
  62. imageView.setVisibility(View.VISIBLE);
  63. }
  64. if (mStringIdArray[0] != 0) {
  65. ((TextView) view.findViewById(R.id.tvSettingName)).setText(mStringIdArray[i]);
  66. }
  67. ImageView imageView2 = (ImageView) view.findViewById(R.id.ivSettingSelected);
  68. if (i != mCurrentPosition) {
  69. i2 = 8;
  70. }
  71. imageView2.setVisibility(i2);
  72. return view;
  73. }
  74. public static class Builder implements LocalListAdapterBuilder {
  75. private int mCurrentPosition;
  76. private int[] mStringIdArray;
  77. public Builder(int[] iArr, int i) {
  78. mStringIdArray = iArr;
  79. mCurrentPosition = i;
  80. }
  81. public ListAdapter build(Context context) {
  82. return new ModeListAdapter(context, mStringIdArray, mCurrentPosition);
  83. }
  84. }
  85. }