возвращая что-то кроме фактической метки в виде списка - PullRequest
0 голосов
/ 07 сентября 2011

Если у меня есть представление списка, которое заполнено строковым массивом, скажите:

Mazda
Renault
Holden
Audi

, и когда я хочу щелкнуть по элементу, вместо того, чтобы возвращать строку «Mazda», я бы скорее вернул связанныйчисло, например, Mazda возвращает 0, Renault возвращает 1 и т. д.

Возможно ли это, и можно ли увидеть значительное увеличение производительности при запросе к базе данных SQLite, используя только целые числа, а не строки?

Спасибо, М

Ответы [ 2 ]

0 голосов
/ 07 сентября 2011

Вы можете сделать что-то вроде следующего:

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

  String[] MY_CARS = new STRING[] { Mazda, Renault, Holden, Audi };

  setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, MY_CARS));

  ListView lv = (ListView)findViewById(R.id.MyListView);

  lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view,
    int position, long id) {

      // When clicked, show a toast with the TextView text
      Toast.makeText(getApplicationContext(), "Item at Position "+pos+" was clicked. This corresponds to "+MY_CARS[pos],
      Toast.LENGTH_SHORT).show();

    }
  });
}

Это должно вернуть позицию элемента в списке, по которому щелкнули, который должен быть индексом массива.

Я не уверен, что вы получите значительное увеличение производительности дБ.

0 голосов
/ 07 сентября 2011

в вашем списке просмотра есть используемый адаптер, поэтому в этом методе есть переменная позиции, которая также уже существует.в массиве легко

protected void onListItemClick(ListView l, View v, int position, long id) {

    super.onListItemClick(l, v, position, id);
    Object o = this.getListAdapter().getItem(position);
    String pen = o.toString();
    Toast.makeText(this, "You have chosen the pen: " + " " + pen, Toast.LENGTH_LONG).show();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...