使用自定义BaseAdapter从ListView中删除项目?

时间:2015-01-27 17:49:15

标签: android listview

我希望用户点击一个按钮, 从列表中删除项目 我已经阅读了很多问题,要删除列表项。 但我找不到任何问题的答案。 我不知道如何构建我的程序 (根据下面的代码) 有人知道我需要添加什么吗?

java代码:

public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_qusition);
    list=(ListView)findViewById(R.id.listView1);
    adapter=new Myadapter(getApplicationContext());
    String qustion=getResources().getStringArray(R.array.qustion);
    list.setAdapter(adapter);
 }


public class Myadapter extends BaseAdapter implements Filterable{


    LayoutInflater myInflater;




    public Myadapter(Context context) {
        myInflater=LayoutInflater.from(context);

        // TODO Auto-generated constructor stub
    }


    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return qustion.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
         final ViewHolder Holder;

        if(convertView==null)
        {
            Holder=new ViewHolder();
            convertView=myInflater.inflate(R.layout.item_custom_layout,null );
            Holder.qustion=(TextView)convertView.findViewById(R.id.text_qustion);
            Holder.delete=(ImageView)convertView.findViewById(R.id.imag_delete);
            Holder.heart=(ImageView)convertView.findViewById(R.id.imag_heart);
            Holder.share=(ImageView)convertView.findViewById(R.id.imag_share);

            convertView.setTag(Holder);

        }
        else
            Holder=(ViewHolder) convertView.getTag();
    Holder.qustion.setTextSize(size);
        Holder.qustion.setText(qustion[position]);

    //}
  Holder.delete.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub


                //-----------delete item list


            }
        return convertView;
    }

1 个答案:

答案 0 :(得分:0)

您有一个数组qustion,表示适配器中的数据。您需要做的是找出删除了哪个索引并从数组中删除该索引。如果您的数组已更改为ArrayList,这将更容易。删除适配器中的索引调用notifyDataSetChanged()以更新视图。