2014-05-20 53 views
0

我想在运行时添加一些按钮,并且想要分配一个触发新活动开始的OnClickListener。动态创建onClickListener并开始一个新的活动

但我在我的IDE编辑器中出现The constructor Intent(new View.OnClickListener(){}, Class<CollectionDemoActivity>) is undefined错误。

虽然startActivity(new Intent(this,CollectionDemoActivity.class));已被IDE接受,并且在我从例如“ onStart()方法

但我需要按钮动态创建.....我做错了什么?什么是最好的选择呢?

final LinearLayout ll=new LinearLayout(this); 
      ll.setOrientation(LinearLayout.VERTICAL); 

      for (int i = 1; i <= 10; i++) { 

         Button btn = new Button(this); 
         btn.setId(i); 
         final int id_ = btn.getId(); 
         btn.setText("_button " + id_); 
         btn.setBackgroundColor(Color.GREEN); 

         ll.addView(btn, params); 

         Button btn1 = ((Button) ll.findViewById(id_)); 
         btn1.setOnClickListener(new View.OnClickListener() { 
          public void onClick(View view) { 
           Toast.makeText(view.getContext(), 
             "Button clicked index = " + id_, Toast.LENGTH_SHORT) 
             .show(); 
           startActivity(new Intent(this,CollectionDemoActivity.class)); 
          } 
         }); 

回答

1

this匿名OnClickListener里面指的正是这种周边类,而不是到Activity。假设活动名称为MyActivity,请将this更改为MyActivity.thisgetContext()

+0

作品的魅力!谢谢 – kamokaze