2014-05-20 54 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