2015-02-12 51 views
-1
String[] classes = {"Activity","Activity1"}; 

for(i = 0; i < sources.length; i++) { 

     b.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       Intent intent = new Intent(v.getContext(),classes[i].class); 
       startActivityForResult(intent,0); 
      } 
     }); 
} 

這裏是class [i] .class的問題。可能嗎 。需要幫助Android Activity class array問題

+0

而「問題」是......? – 2015-02-12 07:59:21

+0

類[i] .class它顯示錯誤。 - 不能引用在不同方法中定義的內部類中的非最終變量類 \t - 令牌「類」上的語法錯誤,標識符預期 \t - 無法在內部類內引用非最終變量i不同的方法 – 2015-02-12 08:04:23

回答

1

這段代碼有很多錯誤。

1)要訪問像這樣的匿名內部類中的變量,它必須聲明爲final。

2)它不會工作 - 「Activity」類不是Activity.class,它是String.class。因爲「活動」是一個字符串。如果你想讓這段代碼工作,你需要一個數組Class,而不是一個Strings數組。然後這兩個成員需要是Activity.class和Activity1.class。

0

你可以試試這個: 你需要做在你的代碼一些變化:

第一:你可以聲明類的數組的字符串,以這種方式:

String[] classes = {"YourPackageName.Activity","YourPackageName.Activity1"}; 

二:對於開始活動。

for(i = 0; i < sources.length; i++) { 

    b.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      Intent intent=new Intent(); 
      intent.setClassName(v.getContext(),classes[i]); 
      startActivityForResult(intent,0); 
     } 
    }); 
} 

希望這可以幫助你。

考慮到你的for循環不給任何一種例外,Bcoz我無法測試。但上面的代碼應該工作,以開始你的活動。

+0

感謝它的工作。 – 2015-02-12 12:59:46

+0

歡迎您來到Russel Monzur,如果它適合您,您可以接受我的答案。 – 2015-02-12 14:47:45

+0

這裏我在onclick函數中使用新的final變量。但是我需要增加變量的值。如果使用我仍然有錯誤顯示,那就是-------不能引用在不同方法中定義的內部類中的非最終變量i。 – 2015-02-14 19:10:39