2011-12-19 2 views
0

ListView에서 작업하고 있습니다. 나중에 선택한 요소를 사용하고 재고를 확보하고 싶습니다.ListView에서 체크 된 항목 가져 오기 및 사용

그것은 기본이 될 수 있지만 초보자로서, 난 정말 어떻게 처리 해야할지 모르겠어 .. 여기

내 목록의 모양, 그리고 관련 자바 코드 무엇 :

http://i.stack.imgur.com/MgKq9.jpg

public class PizzaActivity extends DashboardActivity { 
    /** Called when the activity is first created. */ 
    // HashMap arraList taking objects 
    private ArrayList <HashMap<String, Object>> myIng; 
    private static final String INGREDIENT = "ingnom"; 
    private static final String PRIX = "ingprix"; 
    private static final String IMAGE = "iconfromraw"; 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_f2); 
     ListView listView = (ListView)findViewById(R.id.list); 

     myIng = new ArrayList<HashMap<String,Object>>(); 
     HashMap<String, Object> hm; 

     // Créée une nouvelle HashMap et définis ses élements 
     hm = new HashMap<String, Object>(); 
     hm.put(IMAGE, R.drawable.mozza); 
     hm.put(INGREDIENT, "Mozzarella"); 
     hm.put(PRIX, "Prix : 0.60€"); 
     // Ajoute la HashMap créée à la liste 
     myIng.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(IMAGE, R.drawable.emmental); 
     hm.put(INGREDIENT, "Emmental"); 
     hm.put(PRIX, "Prix : 0.50€"); 

     myIng.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(INGREDIENT, "Chèvre"); 
     hm.put(PRIX, "Prix : 0.75€"); 
     hm.put(IMAGE, R.drawable.chevre); 

     myIng.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(INGREDIENT, "Roquefort"); 
     hm.put(PRIX, "Prix : 0.75€"); 
     hm.put(IMAGE, R.drawable.roquefort); 

     myIng.add(hm); 

     // Définis un SimpleAdapter et lie les valeurs aux lignes de la vue view R.layout.listview 
     SimpleAdapter adapter = new SimpleAdapter(this, myIng, R.layout.listview, 
       new String[]{IMAGE,INGREDIENT,PRIX}, new int[]{R.id.img,R.id.text1, R.id.text2}); 

     listView.setAdapter(adapter); 

     listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
    } 

} 

어떤 조언을 멋진 것 :

감사합니다!

답변

0

확인하십시오. example. 당신은 쉽게 그것을 할 수 있어야합니다.

확인이 레이아웃

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
    android:orientation="horizontal"> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" android:layout_height="wrap_content"> 

     <ImageView android:id="@+id/friendsImage" 
      android:layout_width="50dp" android:layout_height="50dp" 
      android:layout_margin="10dp" android:src="@drawable/network" android:layout_alignParentLeft="true"/> 

     <TextView android:id="@+id/textTitle" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:gravity="center_vertical" 
      android:textColor="@color/white" android:text="Friend # 1" 
      android:textSize="30px" android:textStyle="bold" android:layout_toRightOf="@id/friendsImage" 
      android:layout_marginTop="20dp" /> 
     <CheckBox android:id="@+id/check" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:layout_marginLeft="4px" 
      android:layout_marginRight="10px" android:layout_alignParentRight="true"></CheckBox> 
    </RelativeLayout> 
</LinearLayout> 

그리고 어댑터의 당신의 getView이

public View getView(int position, View convertView, ViewGroup parent) { 
     final ViewHolder holder; 
     if (convertView == null) { 
      convertView = inflater.inflate(R.layout.friends_list_item, null); 

      holder = new ViewHolder(); 

      holder.textTitle = (TextView) convertView 
        .findViewById(R.id.textTitle); 
      holder.messageListTitle = (ImageView) convertView 
        .findViewById(R.id.friendsImage); 
      holder.checkbox = (CheckBox) convertView.findViewById(R.id.check); 
      holder.checkbox 
        .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
         public void onCheckedChanged(CompoundButton buttonView, 
           boolean isChecked) { 
          Log.d(TAG, "Oncheck clicked"); 
          Friend element = (Friend) holder.checkbox 
            .getTag(); 
          element.isSelected = buttonView.isChecked(); 
         } 
        }); 
      holder.checkbox.setTag(mData.get(position)); 
      convertView.setTag(holder); 
     } else 
      holder = (ViewHolder) convertView.getTag(); 
      ((ViewHolder) convertView.getTag()).checkbox.setTag(mData.get(position)); 

     try { 
      Friend curObj = mData.get(position); 
      holder.textTitle.setText(curObj.fname); 
      holder.checkbox.setChecked(mData.get(position).isSelected); 
      //Add image 
      convertView.setTag(R.id.tagFriendList, curObj); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

     return convertView; 
    } 
+0

감사 같아야합니다, 나는 그것을 확인. 내 목록의 각 요소에는 그림과 가격이 포함되어 있으므로 "모델"클래스에 추가해야합니까? 아니면 다른 곳? – Morgan

+0

세부 사항을 도와 줄 답변을 편집했습니다. – san

+0

다시 한 번 감사드립니다. 어떻게 작동하는지 알기 시작했습니다. "getView"예제에서 "mData"를 정확히 나타내는 것은 무엇인지 이해하지 못합니다. – Morgan

관련 문제