Android SDK - ListView, запускать разные намерения в зависимости от того, какая строка была нажата - PullRequest
0 голосов
/ 01 августа 2011

новичок в разработке для Android, и я работаю над тем, чтобы загрузить приложение для iOS на Android В моем приложении я использую списки, и это прекрасно работает. Это то, что у меня есть, и это внутри вкладки.

    setListAdapter(new ArrayAdapter<String> (this, R.layout.row_style, ITEMS));
    ListView lv = getListView();
    lv.setTextFilterEnabled(true);

static final String[] ITEMS = new String[] {
    "Apple", "Google", "Hewlett Packard", "Adobe"
};

обратите внимание, что строковый массив ITEMS является просто фиктивными данными. Теперь вот моя проблема, если пользователь нажимает на Apple, я хочу начать действие под названием AppleActivity. Как я могу с onItemClickListener сделать это. В iphone SDK я могу позвонить

if (objectAtIndex == 0)

Могу ли я сделать что-то похожее? Надеюсь, вы, ребята, можете помочь.

Джонас :) обратите внимание, что строковый массив ITEMS просто является фиктивными данными. Теперь вот моя проблема, если пользователь нажимает на Apple, я хочу начать действие под названием AppleActivity. Как я могу с onItemClickListener сделать это. В iphone SDK я могу позвонить

if (objectAtIndex == 0)

Могу ли я сделать что-то похожее? Надеюсь, вы, ребята, можете помочь.

Джонас:)

Ответы [ 3 ]

0 голосов
/ 01 августа 2011

Это потому, что вы пытаетесь запустить Adapter, а класс Activity должен быть вторым параметром для конструктора Intent. Также это действие должно быть описано в файле манифеста.

0 голосов
/ 01 августа 2011
lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

            if (position == 0) {
                Intent algebra = new Intent(v.getContext(), AlgebraListViewController.class);
                startActivity(algebra);
            }
            else if (position == 1) {
                Intent oekonomi = new Intent(v.getContext(), OekonomiListViewController.class);
                startActivity(oekonomi);
            }
        }
    });

Это должно работать нормально, переименуйте переменные, чтобы вы знали, что они есть (вместо arg0, arg1, arg2 и arg3).

0 голосов
/ 01 августа 2011

да, вы можете, у вас будет что-то вроде этого -> Вы устанавливаете адаптер после

    yourList.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
   //arg2 represents the position , the eletement at arg 2 that is clicked 
   if (arg2==1) startActivity (new Intent ("blabla"));
   if(arg2==2) startActivity (new Intente("Adobeeee"));
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...