Example #1
0
 @Override
 public void onTextChanged(CharSequence s, int start, int before, int count) {
   mAdapter.getFilter().filter(s);
   ImageView imgView = (ImageView) findViewById(R.id.search_icon);
   if (s.length() > 0) {
     imgView.setImageResource(R.drawable.ic_action_navigation_close);
     imgView.setOnClickListener(this);
     imgView.setClickable(true);
   } else {
     imgView.setClickable(false);
     imgView.setImageResource(R.drawable.ic_action_search);
     imgView.setOnClickListener(null);
   }
 }
Example #2
0
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.base_control_searchable_layout);
    setResult(RESULT_CANCELED);
    edt_searchable_input = (EditText) findViewById(R.id.edt_searchable_input);
    edt_searchable_input.addTextChangedListener(this);
    Bundle extra = getIntent().getExtras();
    if (extra != null) {
      if (extra.containsKey("resource_id")) {
        resource_array_id = extra.getInt("resource_id");
      }
      if (extra.containsKey(OColumn.ROW_ID)) {
        mRowId = extra.getInt(OColumn.ROW_ID);
      }
      if (extra.containsKey("model")) {
        mModel = OModel.get(this, extra.getString("model"), null);
      }
      if (extra.containsKey("live_search")) {
        mLiveSearch = extra.getBoolean("live_search");
      }
      if (extra.containsKey("selected_position")) {
        selected_position = extra.getInt("selected_position");
      }
      if (extra.containsKey("search_hint")) {
        edt_searchable_input.setHint("Search " + extra.getString("search_hint"));
      }
      if (resource_array_id != -1) {
        String[] arrays = getResources().getStringArray(resource_array_id);
        for (int i = 0; i < arrays.length; i++) {
          ODataRow row = new ODataRow();
          row.put(OColumn.ROW_ID, i);
          row.put(mRelModel.getDefaultNameColumn(), arrays[i]);
          objects.add(row);
        }
      } else {
        if (extra.containsKey("column_name")) {
          mCol = mModel.getColumn(extra.getString("column_name"));
          mRelModel = mModel.createInstance(mCol.getType());
          objects.addAll(OSelectionField.getRecordItems(mRelModel, mCol));
        }
      }

      mList = (ListView) findViewById(R.id.searchable_items);
      mList.setOnItemClickListener(this);
      mAdapter =
          new OListAdapter(this, android.R.layout.simple_expandable_list_item_1, objects) {
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
              View v = convertView;
              if (v == null) v = getLayoutInflater().inflate(getResource(), parent, false);
              ODataRow row = (ODataRow) objects.get(position);
              OControls.setText(
                  v, android.R.id.text1, row.getString(mRelModel.getDefaultNameColumn()));
              if (row.contains(OColumn.ROW_ID) && selected_position == row.getInt(OColumn.ROW_ID)) {
                v.setBackgroundColor(getResources().getColor(R.color.control_pressed));
              } else {
                v.setBackgroundColor(Color.TRANSPARENT);
              }
              return v;
            }
          };
      if (mLiveSearch) {
        mAdapter.setOnSearchChange(this);
      }
      mList.setAdapter(mAdapter);
    } else {
      finish();
    }
  }