ndroid动态创建按钮并添加事件

public class MyActivity extends Activity {
    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.main);

        final LinearLayout layout2 = new LinearLayout(this);
        layout2.setOrientation(LinearLayout.VERTICAL);
        Button bt1 = new Button(this);
        setContentView(layout2);
        Button bt2 = new Button(this);
        bt1.setText("按钮1");
        bt2.setText("按钮2");
        layout2.addView(bt1);
        layout2.addView(bt2);
        setContentView(layout2);

        Button.OnClickListener listen=new Button.OnClickListener()
        {
            public void onClick(View vObj)
            {
                //Button butObj=(Button)vObj;
                //Toast.makeText((Activity)butObj.getContext() , "点击了["+butObj.getText()+"]", Toast.LENGTH_SHORT).show();

                NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

                PendingIntent pendingIntent2 = PendingIntent.getActivity(vObj.getContext(), 0,
                        new Intent(vObj.getContext(), MyActivity.class), 0);
                // 通过Notification.Builder来创建通知,注意API Level
                // API11之后才支持

                Notification notify2 = new Notification.Builder(vObj.getContext())
                        .setSmallIcon(R.drawable.ic_launcher) // 设置状态栏中的小图片,尺寸一般建议在24×24,这个图片同样也是在下拉状态栏中所显示,如果在那里需要更换更大的图片,可以使用setLargeIcon(Bitmap
                                // icon)
                        .setTicker("请做好准备,明天查水表 :)")// 设置在status
                                // bar上显示的提示文字
                        .setContentTitle("友情提醒")// 设置在下拉status
                                // bar后Activity,本例子中的NotififyMessage的TextView中显示的标题
                        .setContentText("请做好准备,明天查水表 :)")// TextView中显示的详细内容
                        .setContentIntent(pendingIntent2) // 关联PendingIntent
                        .setNumber(1) // 在TextView的右方显示的数字,可放大图片看,在最右侧。这个number同时也起到一个序列号的左右,如果多个触发多个通知(同一ID),可以指定显示哪一个。
                        .getNotification(); // 需要注意build()是在API level
                // 16及之后增加的,在API11中可以使用getNotificatin()来代替
                notify2.flags |= Notification.FLAG_AUTO_CANCEL;
                manager.notify(1, notify2);

            }
        };
        
        bt1.setOnClickListener(listen);
        bt2.setOnClickListener(listen);
    }
}

 

posted @ 2017-05-05 04:31  eATM  阅读(275)  评论(0编辑  收藏  举报