Получить идентификатор кнопки в Android - PullRequest
0 голосов
/ 25 мая 2011

У меня есть адаптер кнопок, я делаю 9 кнопок в виде сетки, затем я устанавливаю идентификатор для каждой кнопки. Но как использовать кнопку в другом классе, например: мне нужно изменить фон кнопки с идентификатором 5. Вот мой код

public class ButtonAdapter extends BaseAdapter {  
    static Button btn;  
    private Context mContext;  

    // Gets the context so it can be used later  
    public ButtonAdapter(Context c) {  
     mContext = c;  

    }  



    // Total number of things contained within the adapter  
    public int getCount() {  
     return somestringarray.length;  
    }  

     // Require for structure, not really used in my code.  
    public Object getItem(int position) {  
     return null;  
    }  

    // Require for structure, not really used in my code. Can  
    // be used to get the id of an item in the adapter for  
    // manual control.  
    public long getItemId(int position) {  
     return position;  
    }  

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

     if (convertView == null) {  
      // if it's not recycled, initialize some attributes  
      btn = new Button(mContext);  
      btn.setLayoutParams(new GridView.LayoutParams(85, 85));  
      btn.setPadding(8, 8, 8, 8);  
      btn.setOnClickListener(new MyOnClickListener(position)); 
      }  
     else {  
      btn = (Button) convertView;  
     }  

     btn.setText(somestringarray[position]);  
     // filenames is an array of strings  
     btn.setTextColor(Color.BLACK);  
     btn.setBackgroundResource(INTarraywithpictures[position]);  

     btn.setId(position);  //here i set Id

     return btn;  
    }  
   }  

Ответы [ 3 ]

2 голосов
/ 25 мая 2011

После вызова setContentView вы можете использовать Button b = (Button)findViewById(theButtonId);, чтобы получить ссылку на него.

0 голосов
/ 25 мая 2011

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

0 голосов
/ 25 мая 2011

вы можете использовать setTag (значение) и getTag (значение) вместо setId () ...

для получения дополнительной информации..go setTag и getTag

...