2011-11-10 27 views
0

ここでは、APIデモで見たものに基づいてベースアダプターを用意しました。私は、リストからアイテムを動的に追加/削除したいと思う。この場合、ボタンによって呼び出されたインテントから追加し、リストビュー内のイメージビューをクリックしないようにする。この場合、DATA []から項目を追加/削除します。 私はSOやgoogleのさまざまなAddItem()やRemove()メソッドを見てきましたが、このような状況にはあまり対応していません。どんな助けも素晴らしいだろう。ここでは、コードは次のようになります。カスタムベースアダプターを使用してリストからアイテムを追加/削除する方法

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

あなたが行うことができるまでに必要なのは、ちょうど例えばArrayListによって実装簡単なList、との配列を交換しないで、なぜあなたのDATA []配列、から項目を追加/削除する場合には。

これにより、必要に応じてリストからアイテムを追加/削除するアダプタ用のクリックハンドラを作成することができます。

+0

はい! arraylistを使うことは確かに道でした。これと組み合わせるとhttp://stackoverflow.com/questions/7057845/save-arraylist-to-sharedpreferencesが解決しました。ありがとうございました! – benbeel

関連する問題