Как получить более двух значений в списке выбора Android - PullRequest
0 голосов
/ 21 января 2012

Я хочу открыть действие, зависит от значения, выбранного пользователем в ListView.Если пользователь выбирает элемент списка со значением type1, он должен открыть acitvity1 (activity1.class), если элемент списка принадлежит type2, он должен открыть acitvity2 (activity2.class).Я все еще хочу получить значение идентификатора.Может кто-нибудь, пожалуйста, помогите мне получить более одного значения в списке.(не только значение идентификатора) или обходной путь для этого.

мой код:

            @Override
        protected void onListItemClick(ListView l, View v, int position, long id) {
            super.onListItemClick(l, v, position, id);

            //TODO:need to assign the value here 
            String mEdit = .......;

            if (mEdit.equals("type1")){
                Intent i = new Intent(this, activity1.class);
                i.putExtra(DbAdapter.KEY_ROWID, id );
                startActivityForResult(i, ACTIVITY_EDIT);
            }else if (mEdit.equals("type2")){
                Intent i = new Intent(this, activity2.class);
                i.putExtra(KEY_ROWIDA, id );
                startActivityForResult(i, ACTIVITY_EDIT);
            };

            }

Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 21 января 2012

Это может сработать в ситуации,

...    
//TODO:need to assign the value here 
        TextView tv = (TextView)v.findViewById(R.id.itemname);
        String category = tv.getText().toString();
...

R.id.itemname является атрибутом id элемента списка, определенного в макете xml.

0 голосов
/ 22 января 2012

Вот рабочий код;

            @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);

        //TODO:need to assign the value here 
        Cursor mycursor = (Cursor) getListView().getItemAtPosition(position); 
        //1 is the field position
        String mEdit = mycursor.getString(1);

        if (mEdit.equals("type1")){
            Intent i = new Intent(this, activity1.class);
            i.putExtra(DbAdapter.KEY_ROWID, id );
            startActivityForResult(i, ACTIVITY_EDIT);
        }else if (mEdit.equals("type2")){
            Intent i = new Intent(this, activity2.class);
            i.putExtra(KEY_ROWIDA, id );
            startActivityForResult(i, ACTIVITY_EDIT);
        };

        }
0 голосов
/ 21 января 2012

Вы можете вызвать getListView (). GetItemAtPosition (int) для вашего ListActivity и присвоить ему индекс элемента списка.Затем вы можете привести его к любому объекту поддержки и выполнить любые операции с этим объектом.Пример из одного из моих собственных приложений:

ForumDescriptor selected = (ForumDescriptor) getListView().getItemAtPosition(position);

ForumDescriptor содержит некоторую информацию об отдельном подфоруме (это просмотрщик форумов для веб-сайта).Каждый элемент в моем списке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...