Java Can';t解析可在数组上绘制的符号
我在Android Studio上有一个代码,如下所示:Java Can';t解析可在数组上绘制的符号,java,android,Java,Android,我在Android Studio上有一个代码,如下所示: public static void getData() { List<Information> data = new ArrayList<>(); int[] icons = (R.drawable.ic_bookmark1, R.drawable.ic_bookmark2); } 错误显示在: Can't resolve Symbol Drawable. 还有一个错
public static void getData() {
List<Information> data = new ArrayList<>();
int[] icons = (R.drawable.ic_bookmark1, R.drawable.ic_bookmark2);
}
错误显示在:
Can't resolve Symbol Drawable.
还有一个错误是:
Can't resolve Symbol ic_bookmark2;
截图:
我已将我的图标放在res文件夹中
代码和错误
这是我的.java文件的完整代码
package com.balinez.wdharmana.doahindu;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.support.v7.widget.Toolbar;
import java.util.ArrayList;
import java.util.List;
/**
* A simple {@link Fragment} subclass.
*/
public class NavigationDrawerFragment extends Fragment {
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 BalinezAdapter adapter;
private boolean mUserLearnedDrawer;
private boolean mFromSavedInstanceState;
private View containerView;
public NavigationDrawerFragment() {
// Required empty public constructor
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mUserLearnedDrawer=Boolean.valueOf(readFromPreferences(getActivity(), KEY_USER_LEARNED_DRAWER,"false"));
if(savedInstanceState!=null) {
mFromSavedInstanceState=true;
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View layout = inflater.inflate(R.layout.fragment_navigation_drawer, container, false);
recyclerView=(RecyclerView) layout.findViewById(R.id.drawer_list);
return layout;
}
public static void getData() {
List<Information> data = new ArrayList<>();
int[] icons = (R.drawable.ic_bookmark1, R.drawable.ic_bookmark1);
}
public void setUp(int fragmentId, DrawerLayout drawerLayout, Toolbar toolbar) {
containerView = getActivity().findViewById(fragmentId);
mDrawerLayout = drawerLayout;
mDrawerToggle = new ActionBarDrawerToggle(getActivity(), drawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close) {
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
if(!mUserLearnedDrawer) {
mUserLearnedDrawer=true;
saveToPreferences(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 saveToPreferences(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 readFromPreferences(Context context, String preferenceName, String defaultValue) {
SharedPreferences sharedPreferences=context.getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE);
return sharedPreferences.getString(preferenceName, defaultValue);
}
}
package com.balinez.wdharmana.doahindu;
导入android.content.Context;
导入android.content.SharedReferences;
导入android.os.Bundle;
导入android.support.annotation.Nullable;
导入android.support.v4.app.Fragment;
导入android.support.v4.widget.DrawerLayout;
导入android.support.v7.app.ActionBarDrawerToggle;
导入android.support.v7.widget.RecyclerView;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.support.v7.widget.Toolbar;
导入java.util.ArrayList;
导入java.util.List;
/**
*一个简单的{@link Fragment}子类。
*/
公共类NavigationDrawerFragment扩展了片段{
私人回收站;
公共静态最终字符串PREF_FILE_NAME=“testpref”;
公共静态最终字符串键\u USER\u LEARNED\u DRAWER=“USER\u LEARNED\u DRAWER”;
私有操作bardrawertoggle mDrawerToggle;
私人抽屉布局mDrawerLayout;
专用巴厘岛适配器;
私有布尔mUserLearnedDrawer;
私有布尔值mFromSavedInstanceState;
私有视图容器视图;
公共导航抽屉碎片(){
//必需的空公共构造函数
}
@凌驾
创建时的公共void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
mUserLearnedDrawer=Boolean.valueOf(readFromPreferences(getActivity(),KEY\u USER\u LEARNED\u DRAWER,“false”);
如果(savedInstanceState!=null){
mFromSavedInstanceState=true;
}
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图布局=充气机。充气(R.layout.fragment\u navigation\u抽屉、容器,错误);
recyclerView=(recyclerView)layout.findViewById(R.id.drawer\u列表);
返回布局;
}
公共静态void getData(){
列表数据=新的ArrayList();
int[]图标=(R.drawable.ic_bookmark1,R.drawable.ic_bookmark1);
}
公共空白设置(int fragmentId、抽屉布局、工具栏){
containerView=getActivity().findViewById(fragmentId);
mDrawerLayout=抽屉式布局;
mDrawerToggle=newactionBarDrawerToggle(getActivity(),抽屉布局,工具栏,R.string.drawer\u打开,R.string.drawer\u关闭){
@凌驾
打开图纸上的公共空白(视图抽屉视图){
super.onDrawerOpened(抽屉视图);
如果(!mUserLearnedDrawer){
mUserLearnedDrawer=真;
saveToPreferences(getActivity(),键\用户\已学习\抽屉,mUserLearnedDrawer+“”);
}
getActivity().InvalidateOptions菜单();
}
@凌驾
图纸上的公共空白已关闭(视图抽屉视图){
super.onDrawerClosed(抽屉视图);
getActivity().InvalidateOptions菜单();
}
};
如果(!mUserLearnedDrawer&!mFromSavedInstanceState){
mDrawerLayout.openDrawer(containerView);
}
mDrawerLayout.setDrawerListener(mDrawerToggle);
mDrawerLayout.post(新的Runnable(){
@凌驾
公开募捐{
mDrawerToggle.syncState();
}
});
}
公共静态void saveToPreferences(上下文上下文、字符串首选项名称、字符串首选项值){
SharedReferences SharedReferences=context.getSharedReferences(首选文件名,context.MODE\u PRIVATE);
SharedReferences.Editor=SharedReferences.edit();
putString(preferenceName,preferenceValue);
editor.apply();
}
公共静态字符串readFromPreferences(上下文上下文、字符串首选项名称、字符串默认值){
SharedReferences SharedReferences=context.getSharedReferences(首选文件名,context.MODE\u PRIVATE);
返回SharedReferences.getString(preferenceName,defaultValue);
}
}
我认为问题在于括号的使用,你应该使用括号
int[] icons = (R.drawable.ic_bookmark1, R.drawable.ic_bookmark2);
应该是
int[] icons = {R.drawable.ic_bookmark1, R.drawable.ic_bookmark2};
在res文件夹下是否有可绘制文件夹?你真的把ic_bookmark1和ic_bbokmark2放进了drawable文件夹吗?试着清理和重建?我试过了。没用,没用!!谢谢,内特:)
int[] icons = {R.drawable.ic_bookmark1, R.drawable.ic_bookmark2};