单击最后一项后

时间:2016-11-08 13:42:30

标签: android button click

我正在创建一个包含buttonlistview的应用。我的问题是在点击此button中的所有项目后启用此listview。继续button将被禁用。

如何检查是否已点击所有项目?

这是我的适配器请看一下

    public class InstallAdapter extends BaseAdapter {

    private Activity activity;
    private LayoutInflater inflater;
    public List<InstallModel> galleryItems;
    ProgressDialog dia;




    public InstallAdapter(Activity activity,
            ArrayList<InstallModel> galleryItems) {
        this.activity = activity;
        this.galleryItems = galleryItems;

    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        Log.e("getCount :", galleryItems.size() + "");
        return galleryItems.size();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        Log.e("getItem :", galleryItems.get(position) + "");
        return galleryItems.get(position);
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        Log.e("getItemId :", position + "");
        return galleryItems.indexOf(getItem(position));
    }

    class ViewHolder {

        Button Title;

    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub

        final ViewHolder holder;
        holder = new ViewHolder();
        if (inflater == null)
            inflater = (LayoutInflater) activity
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        convertView = inflater.inflate(R.layout.custom_list_result, null);

        Log.e("AgetView", galleryItems.size() + "");

        holder.Title = (Button) convertView.findViewById(R.id.buttonInstall1);

        Log.e("gallery postion", galleryItems.get(position) + "");
        holder.Title.setText(galleryItems.get(position).getHeading());

        holder.Title.setOnClickListener(new OnClickListener() {

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

                String url = galleryItems.get(position).getApp_url();
                Intent i = new Intent(Intent.ACTION_VIEW);
                i.setData(Uri.parse(url));
                activity.startActivity(i);


            }
        });

        /*if (position == getCount() - 1) {
            btGoCongrts.setEnabled(false);
        } else {
            btGoCongrts.setEnabled(true);
        }*/

        return convertView;
    }


}

2 个答案:

答案 0 :(得分:2)

一种简单的方法可能是添加一个职位列表。

您可以创建ArrayList int。每当用户点击item时,您都会使用此项position并检查ArrayList是否包含此index

如果它不包含它,请将此int添加到ArrayList

在此之后,您检查此ArrayList中的项目数,如果它等于列表中项目的总数,则表示您已完成。

小代码:

将其添加到列表中。setOnItemClickListener

ArrayList<int> myIndexes = new ArrayList<>()

//add onitemclick method with this body
if(!myIndexes.contains(position)){
  myIndexes.add(position);
}
if(myIndexes.length == myList.length){
  //enable button
}

显然你必须替换名称和实现方法,但这将起作用

答案 1 :(得分:0)

例如,如果您在列表视图中显示电影列表,则

第1步:创建一个类Movie,其中包含名为string movieNameboolean flag

的2个字段

第2步:为所有电影对象设置初始flag值为false并添加到arraylist中。现在使用此列表在列表视图中显示电影名称。

第3步:为listview添加onclick侦听器。

第4步:点击listview中的每个项目onclick方法将以position作为参数之一进行调用。使用此参数将相应的flag设置为true。在此行之后迭代movielist并检查列表中的所有电影对象是否具有标志值为true。在这种情况下,启用button