2014-10-24 4 views
0

Линия с "r.activityInfo" возвращает "Ошибка: не может найти символ переменной activityInfo" по составлениюне удается разрешить символ 'activityInfo'

общественного класса MainActivity расширяет ActionBarActivity {

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    Log.d("LP1", "Created"); 
    super.onCreate(savedInstanceState); 

    final Intent mainIntent = new Intent(Intent.ACTION_VIEW, android.net.Uri.parse("http://abc")); 
    mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
    final List<ResolveInfo> browsList = this.getPackageManager().queryIntentActivities(mainIntent, 0); 
    Iterator itr = browsList.iterator(); 
    while(itr.hasNext()) { 
     Object r = itr.next(); 
     ActivityInfo s = r.activityInfo; 
    } 

... }

ответ

2

Вы объявляете Object r, но класс Object не имеет ни одного имени по имени activityInfo.

Чтобы исправить это, используйте усовершенствованный цикл:

for (ResolveInfo r : browsList) { 
    ActivityInfo s = r.activityInfo; 
} 
+0

спасибо, что решил это :) –

0

Вы можете просто добавить гипс или использовать для каждого цикла.

while(itr.hasNext()) { 
     ResolveInfo r = (ResolveInfo)itr.next(); 
     ActivityInfo s = r.activityInfo; 
    } 
+1

Лучше было бы использовать дженерики и сделать актерский неактуальным. –