2015-05-26 3 views
0

Я следил за этим учебным пособием о том, как создать RecyclerView на slidenerd, и когда я запустил приложение, он показывает мне эту ошибку (ошибка: (69, 36) : не может найти символьную переменную i), указывая на эту часть моего кода как ошибку (current.iconId = icons [i]; current.title = titles [i];) ниже - мои кодыОшибка: (69, 36) ошибка: не удается найти символьную переменную i

public class NavigationDrawerFragment extends Фрагмент {

private RecyclerView recyclerView; 
public static final String PREF_FILE_NAME="testpref"; 
public static final String KEY_USER_LEARNED_DRAWER="user_learned_drawer"; 
private ActionBarDrawerToggle mDrawerToggle; 
private DrawerLayout mDrawerLayout; 
private View containerView; 
private MichaelAdapter adapter; 
private boolean mUserLearnedDrawer; 
private boolean mFromSavedInstanceState; 

public NavigationDrawerFragment() { 
    // Required empty public constructor 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    mUserLearnedDrawer=Boolean.valueOf(readFromPreference(getActivity(),KEY_USER_LEARNED_DRAWER,"false")); 
    if (savedInstanceState!=null){ 
     mFromSavedInstanceState=true; 
    } 

} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    View layout=inflater.inflate(R.layout.fragment_navigation_drawer, container, false); 
    recyclerView=(RecyclerView)layout.findViewById(R.id.drawerList); 
    adapter = new MichaelAdapter(getActivity(), getData()); 
    recyclerView.setAdapter(adapter); 
    recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); 
    return layout; 

} 
    public static List<information> getData() { 
     List<information> data = new ArrayList<>(); 
     int[] icons = {R.drawable.ic_podcasts, R.drawable.ic_magazine}; 
     String[] titles = {"Podcast", "Magazine"}; 
     for (int i = 0; i< titles.length && i< icons.length; i++) ; 
     { 
     information current=new information(); 
      current.iconId=icons[i]; 
      current.title=titles[i]; 
      data.add(current); 
     } 
     return data; 
    } 


public void setUp(int fragmentId, DrawerLayout drawerLayout, Toolbar toolbar) { 
    containerView=getActivity().findViewById(fragmentId); 
    mDrawerLayout=drawerLayout; 
    mDrawerToggle=new ActionBarDrawerToggle(getActivity(),drawerLayout,toolbar,R.string.draw_open, R.string.draw_close){ 

     @Override 
     public void onDrawerOpened(View drawerView) { 
      super.onDrawerOpened(drawerView); 
      if(!mUserLearnedDrawer){ 
       mUserLearnedDrawer=true; 
       saveToPreference(getActivity(),KEY_USER_LEARNED_DRAWER,mUserLearnedDrawer+""); 
      } 
      getActivity().invalidateOptionsMenu(); 
     } 

     @Override 
     public void onDrawerClosed(View drawerView) { 
      super.onDrawerClosed(drawerView); 
      getActivity().invalidateOptionsMenu(); 
     } 
    }; 
    if (!mUserLearnedDrawer&& !mFromSavedInstanceState){ 
     mDrawerLayout.openDrawer(containerView); 
    } 


    mDrawerLayout.setDrawerListener(mDrawerToggle); 
    mDrawerLayout.post(new Runnable() { 
     @Override 
     public void run() { 
      mDrawerToggle.syncState(); 
     } 
    }); 
} 

public static void saveToPreference(Context context,String preferenceName,String preferenceValue){ 
    SharedPreferences sharedPreferences=context.getSharedPreferences(PREF_FILE_NAME,Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor=sharedPreferences.edit(); 
    editor.putString(preferenceName,preferenceValue); 
    editor.apply(); 
} 

public static String readFromPreference(Context context,String preferenceName,String defaultvalue){ 
    SharedPreferences sharedPreferences=context.getSharedPreferences(PREF_FILE_NAME,Context.MODE_PRIVATE); 
    return sharedPreferences.getString(preferenceName,defaultvalue); 
} 

}

ответ

1

проблема заключается запятой в конец for (int i = 0; i< titles.length && i< icons.length; i++) ;, который без корпус. В вашем случае i определяется в контексте петли foor и не отображается вне его тела, давая вам ошибку времени компиляции i is not defined. Удалите ; после закрывающей скобки из вашего для петли

Изменить

for (int i = 0; i< titles.length && i< icons.length; i++) ; 
{ 

с

for (int i = 0; i< titles.length && i< icons.length; i++) { 
Смежные вопросы