onListItemClick с множественным значением / извлечением значения - PullRequest
1 голос
/ 23 мая 2010

** Здравствуйте, я пытаюсь получить второе значение из заполненного Arraylist / ArrayAdapter.Я новичок в Array, поэтому, пожалуйста, поправьте меня, если я ошибаюсь

Q1.Я создал Array Favorite.Я думаю, что я создал массив с двумя наборами значений. Подробно |Значение.пример Detail = "Yasmin", Value = "8".Это правильно?

Q2.Я назначил Избранный Массив на просмотр списка mFavlist.Во время OnItemClick я могу вернуть метку "Yasmin" по позиции списка.То, что я хотел бы сделать, это вернуть значение «8».Каков наилучший способ сделать это?

Пожалуйста, дайте мне знать, если я на правильном пути через массив и адаптер **

import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;

public class lister extends Activity {
    /** Called when the activity is first created. */
        TextView txHomeTeam;
        protected ListView mFavlist;
        protected ArrayList<Favorite> fakeFavs = new ArrayList<Favorite>();

@Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
       this.setContentView(R.layout.main);


        this.txHomeTeam = (TextView)this.findViewById(R.id.title);

        fakeFavs.add(new Favorite("John", "1"));
        fakeFavs.add(new Favorite("Yasmin", "8"));
        fakeFavs.add(new Favorite("Jack", "10"));

        //this.mFavlist = (ListView) this.findViewById(R.id.list_favorites);
        this.mFavlist = (ListView) this.findViewById(R.id.list_favorites);
        initListView();

        mFavlist.setTextFilterEnabled(true);

        mFavlist.setOnItemClickListener(new OnItemClickListener() {
                        @Override
                        public void onItemClick(AdapterView arg0, View view,
                                           int position, long id) {

                                // user clicked a list item, 
    //and read the value from <Favorite>.value
                                //txHomeTeam.setText=????

                                }

        });

    }

   public void refreshFavListItems() {
            mFavlist.setAdapter(new ArrayAdapter<Favorite>(this,
                            android.R.layout.simple_list_item_1, fakeFavs));
    }

    public void initListView() {
        /* Loads the items to the ListView. */
        refreshFavListItems();

    }
protected class Favorite {
        protected String Detail;
        protected String value;

        protected Favorite(String Detail, String value) {
                this.Detail = Detail;
                this.value = value;

        }
        public String toString() {
                return Detail;
        }
}


}

1 Ответ

0 голосов
/ 23 мая 2010

Используйте параметр position, чтобы получить правильную позицию в вашем адаптере

public void onItemClick(AdapterView arg0, View view,
                                           int position, long id) {
    Favorite selectedFav=lister.this.fakeFavs.getItem(position)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...