2012-09-13 207 views
0

我在添加功能按钮一个问题,我动态创建动态地添加按钮,并添加每个按钮不同的功能

我试图做的是我有一所房子,我可以设置不同类型的房间如BEDROOM, KITCHEN, GARAGE等代表BUTTONS,然后每个房间有不同类型的电器和其他东西,我也可以设置,也代表BUTTONS。问题是,一些用户有不同数量的ROOMS,一些有2 BEDROOMS或3,所以我必须使BUTTONS为动态房间,并为每个BUTTON添加不同的功能。我怎样才能实现这个?

例如:

Button room = new Button(this); 
room.setText("Bedroom"); 
room.setID(1); 
/* set function for this button like change the textView or add numbers */ 

,然后当我再次单击该按钮,添加卧室它将创建一个新的BEDROOM但具有不同的功能。那可能吗?

+0

http://stackoverflow.com/questions/8079799/how-do-i-create-a-button-programatically?rq=1 –

+0

对不起我的问题没有更多的解释,我已经知道如何做那个先生,短短一秒我会编辑我的问题 – philip

+0

@philip,你能解释一下你的问题吗?你的问题的简短答案(如果我理解正确)是设置onClickListener属性为不同的按钮实现不同的功能。 – Gan

回答

0

您需要设置按钮属性“clickable”,默认情况下,当您以编程方式创建按钮时为false,将其设置为true并为每个按钮设置onClickListener。

Button room = new Button(this); 
room.setText("Bedroom"); 
room.setID(1); 
room.setClickable(true); 
room.setOnClickListener(new OnClickListener(){ 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      // Here is where you'd put in the specific functionality for this button 
     } 
    }); 
+0

但我怎样才能使该按钮不会消失后关闭应用程序? – philip

+0

那么,因为您是动态创建它的,所以您必须在使用共享首选项或SQLite数据库关闭应用程序时保存按钮的状态。我建议使用共享首选项,因为这种情况下它更轻量级。你可以做的是在首选项中存储布尔值,以决定是否已经放置该按钮。你可以在你的onCreate方法中检查这个布尔值。如果已创建,则使用上面的代码放置并设置按钮。你可以在这里找到更多的存储选项http://developer.android.com/guide/topics/data/data-storage.html – zabawaba99

+0

将做到这一点,谢谢 – philip