2010-05-22 1 views
1

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

Q1. Я создал избранное Array. Я думаю, что я создал массив с двумя наборами значений Detail | Стоимость. example 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; 
     } 
} 


} 
+0

У вас есть не задал никаких вопросов здесь. В чем проблема? Каковы симптомы? Вы получаете сообщения об ошибках? – CommonsWare

+0

мои извинения, если есть какая-то путаница, у меня проблема с блоком кода. Я обновлю основную часть – JuniorFlip

ответ

0

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

public void onItemClick(AdapterView arg0, View view, 
              int position, long id) { 
    Favorite selectedFav=lister.this.fakeFavs.getItem(position) 
}