2011-11-10 2 views
0

여기 API 데모에서 본 것을 기반으로하는 baseadapter가 있습니다. 나는 목록에서 항목을 동적으로 추가/제거하려고합니다.이 경우 단추로 호출 된 의도에서 추가하고 목록보기에서 이미지보기를 클릭하지 마십시오. 그리고이 경우 DATA []에서 항목을 추가/제거 할 것입니다. 저는 SO 및 google에서 다양한 AddItem() 및 Remove() 메소드를 둘러 보았지만 이러한 상황에 대해서는별로 도움이되지 않았습니다. 어떤 도움이라도 좋을 것입니다.사용자 정의 baseadapter로 목록에서 항목을 추가/제거하는 방법

public class myActivity extends Activity{ 
    private static final int CONTACT_PICKER_RESULT = 1001; 
    private static final String TAG = myActivity.class.getSimpleName(); 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     ListView lv = (ListView)findViewById(R.id.listView1); 
     lv.setAdapter(new myAdapter(this));  
     Button bAdd = (Button)findViewById(R.id.bAdd); 
     bAdd.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
     ........xxxx....xxxx.... 
     } 
public class myAdapter extends BaseAdapter{ 
     private LayoutInflater mInflater; 

     public myAdapter(Context context) { 
      mInflater = LayoutInflater.from(context); 

     } 


     @Override 
     public int getCount() { 
      // TODO Auto-generated method stub 
      return DATA.length; 
     } 


     @Override 
     public Object getItem(int position) { 
      // TODO Auto-generated method stub 
      return position; 
     } 


     @Override 
     public long getItemId(int position) { 
      // TODO Auto-generated method stub 
      return 0; 
     } 


     @Override 
     public View getView(final int position, View convertView, ViewGroup parent) { 
      // TODO Auto-generated method stub 
      ViewHolder holder; 
      if (convertView == null) { 
       convertView = mInflater.inflate(R.layout.row,null); 
       holder = new ViewHolder(); 
       holder.text = (TextView) convertView.findViewById(R.id.txtTitle); 
       holder.icon = (ImageView) convertView.findViewById(R.id.imgIcon); 
       convertView.setTag(holder); 


      } else { 
       // Get the ViewHolder back to get fast access to the TextView 
       // and the ImageView. 
       holder = (ViewHolder) convertView.getTag(); 
      } 
      holder.text.setText(DATA[position]); 
      holder.icon.setImageResource(android.R.drawable.ic_delete); 

      return convertView; 
     } 



     } 


    static class ViewHolder { 
     TextView text; 
     ImageView icon; 
    } 
//this will not be hard-coded, jsut included for clarity 
private static final String[] DATA ={ 
     "one","two","three" }; 

답변

1

당신이/추가하려면 DATA [] 배열에서 항목을 제거한다 할 수에 필요한 모든, 왜 단지 예를 들어 ArrayList에 의해 구현 간단한 List와 배열을 대체하지 않으면 다음은 코드입니다 .

이렇게하면 필요에 따라 목록에서 항목을 추가/제거하는 어댑터의 클릭 핸들러를 작성할 수 있습니다.

+0

예! arraylist를 사용하는 것은 확실히 길이었습니다. 이것과 결합하여 http://stackoverflow.com/questions/7057845/save-arraylist-to-sharedpreferences가 해결되었습니다. 고맙습니다! – benbeel

관련 문제