как сделать так, чтобы кнопка стала невидимой в списке приложений андроид - PullRequest
0 голосов
/ 12 октября 2011

в моем приложении у меня есть представление списка.Каждый список состоит из изображения, текста и трех кнопок.Я разместил все это в ListActivity.

Когда пользователь нажимает определенную кнопку, которую я использую, чтобы вызвать функцию загрузки моего приложения.В то время я хочу, чтобы эта кнопка была невидимой.Ниже приведена часть моего кода

public class Content extends ListActivity 
{
  public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        adapter = new EventAdapter(this);
        setListAdapter(adapter);
    }

  public class InventoryAdapter extends BaseAdapter implements OnClickListener
{        
    private Context context;   
    ImageButton b1;
    public InventoryAdapter(Context ctx) 
    {     
        context = ctx;
    }
    public long getItemId(int position) 
    {
        return position;
    }
    public View getView(int position, View convertView, ViewGroup parent)
    {
        View view;
        if(convertView == null) 
        {
            LayoutInflater inflater = (LayoutInflater)
            context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = inflater.inflate(R.layout.list, null);
            b1 = (ImageButton)view.findViewById(R.id.Btn1);
            b1.setOnClickListener(this);
        }
        else 
        {
            view = convertView;
        }
        b1.setTag(position);            
        return view;
   }

    @Override
    public void onClick(View v) 
    {
        Log.e("onclick","onclick");
        Integer position = (Integer) v.getTag();
        switch(v.getId())
        {
            case R.id.Btn1:
                selected_url=url[position];
                new DownloadTask1().execute();
            break;  
        }
    }
}    

Как сделать так, чтобы конкретная кнопка была невидимой при нажатии на позицию

Ответы [ 3 ]

3 голосов
/ 12 октября 2011

Используйте button.setVisibility(View.Invisible);, чтобы сделать вашу кнопку невидимой (пространство, занимаемое кнопкой, остается без изменений).

ИЛИ использовать button.setVisibility(View.GONE); (Это удаляет кнопку из макета, а другие виды занимают место)

Итак, ваш onClick метод будет выглядеть так:

@Override
    public void onClick(View v) 
    {
        Log.e("onclick","onclick");
        Integer position = (Integer) v.getTag();
        switch(v.getId())
        {
            case R.id.Btn1:
                selected_url=url[position];
                btn1.setVisibility(View.INVISIBLE);   
                new DownloadTask1().execute();
            break;  
        }
    }

Когда вы хотите сделать их видимыми, вы должны использовать View.VISIBLE.

Итак, вы должны сделать так: button.setVisibility(View.VISIBLE);

1 голос
/ 16 ноября 2011

создать массив, хранящий список нажатий на кнопку в соответствии с их положением.

public static ArrayList<Integer> list_Btn    = new ArrayList<Integer>(); //to make the buy button either visible or invisible

При нажатии кнопки в представлении списка должно быть следующее

request_holder.button.setOnClickListener(new OnClickListener() 
            {
                @Override
                public void onClick(View v) 
                {
                                   Appconstant.list_Btn.add(position,View.INVISIBLE);       
                }
            });
            return convertView;

Затем в списке данных отображения представления списка должно быть следующее:

public void ListData(listViewHolder viewHolder, int position) 
        {
                if(Appconstant.list_Btn.get(position) == View.VISIBLE)
                {
                    request_holder.buy.setVisibility(View.VISIBLE);
                }
                else if(Appconstant.list_Btn.get(position)== View.INVISIBLE)
                {
                    request_holder.buy.setVisibility(View.INVISIBLE);
                }
        }
0 голосов
/ 06 июля 2012

@ Картик это сработало ((ImageButton) v.findViewById (R.id.btn1)). SetVisibility (View.INVISIBLE);спасибо.

...