【问题标题】:listview with button [duplicate]带有按钮的列表视图[重复]
【发布时间】:2012-07-08 14:57:11
【问题描述】:

可能重复:
Handling button event in each row of Listview issue

我正在开发一个安卓应用程序。我应该在 ListView 的每一行中添加一个按钮,当我单击任何按钮时,我需要删除该按钮。但是,当我这样做时,按钮被删除,但其他位置的一些其他按钮也被删除。此外,当我向下和向上滚动 ListView 时,我单击并删除的这些按钮再次出现在列表中。 你能告诉我一个确切的解决方案或一段完整的代码吗?谢谢...

public View getView(final int position, View convertView, ViewGroup parent) {

        if(convertView == null){
            // LayoutInflater class is used to instantiate layout XML file into its corresponding View objects.
            LayoutInflater layoutInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
            convertView = layoutInflater.inflate(R.layout.listxml, null);
        }


        rawTextView = (TextView) convertView.findViewById(R.id.textView1);
        rawTextView.setText("Text "+innerClassBookArray[position]);

        final LinearLayout lnr=(LinearLayout)convertView.findViewById(R.id.layoutforbtn);

         final Button btn = new Button(getBaseContext()); 
            btn.setText("MyButton"); 
            btn.setId(position);
            lnr.addView(btn); 

           btn.setOnClickListener(myOnBtnClickListener);

        return convertView;
    }   
      private OnClickListener myOnBtnClickListener = new OnClickListener() {
            @Override
            public void onClick(View v) {
                final int posit = bookListView.getPositionForView((View) v.getParent());
                Toast.makeText(getApplicationContext(), Integer.toString(posit), Toast.LENGTH_LONG).show();

            }
        };

【问题讨论】:

  • 谷歌ListView with button in Android
  • 使用 holder 类并在其中声明视图。

标签: android android-layout android-handler


【解决方案1】:

this 示例可以帮助我解决这个问题:D

【讨论】:

    【解决方案2】:

    您可以这样做创建一个数组列表,其中每个元素为“0”(Arraylist<String> my=new ArrayList<String>(); Arraylist 的大小应根据列表视图中列的大小),然后单击按钮设置“1” 在my.set(position,"1");的位置,然后通知列表视图。还看看下面代码中的条件 例如

     public View getView(final int position, View convertView, ViewGroup parent) {
    
                if(convertView == null){
                    // LayoutInflater class is used to instantiate layout XML file into its corresponding View objects.
                    LayoutInflater layoutInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
                    convertView = layoutInflater.inflate(R.layout.listxml, null);
                }
    
    
                rawTextView = (TextView) convertView.findViewById(R.id.textView1);
                rawTextView.setText("Text "+innerClassBookArray[position]);
      Button button =(Button)findViewById(R.id.yourid);
    
          if(my.get(position).equals("1")){
        button.setVisiblity(View.INVISIBLE);
        }
                final LinearLayout lnr=(LinearLayout)convertView.findViewById(R.id.layoutforbtn);
    
    
                   btn.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View v) {
    
        my.set(position,"1");
        ((BaseAdapter)yourActivity.this.lv.getAdapter()).notifyDataSetChanged();
                    }
                });
    
    
                return convertView;
            }   
    I think this will definitely help you any question ask me     
    

    【讨论】:

    • 复制粘贴我写的代码
    • Nitin 非常感谢.. 我解决了这个问题。真的“((BaseAdapter)yourActivity.this.lv.getAdapter()).notifyDataSetChanged();”非常感谢你帮助了我:)
    • 如果这个答案对你有帮助,你可以接受它作为正确答案@Emilla
    【解决方案3】:

    Here 是适合您的简单而漂亮的教程。在此代码中,当点击事件时尝试隐藏 按钮

    Btn01.setOnClickListener(new OnClickListener(){
    
     public void onClick(View v) {
    
    //Toast.makeText(SearchUser.this, "Button 1 "+listview_arr[position], Toast.LENGTH_SHORT).show();
    Btn01.setvisibility(view.Gone);
    }
    });
    

    试试这样。希望它对你有帮助。祝你好运

    【讨论】:

    • 我已经尝试过类似的方法。但是其他一些按钮也消失了,而且当我向下或向上滚动列表时,按钮再次出现:(
    • 我敢肯定,如果你尝试那个,你一定会得到你的结果。如果不是在按钮隐藏后调用 list.notifyDataSetChanged();你还必须扩展 listactivity
    猜你喜欢
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    相关资源
    最近更新 更多