1

这是我的日志猫:

在此处输入图像描述

它说Fatal Exception : Mainres.resources没有找到,还有很多其他错误。这是怎么回事?

这是我的主要活动:

public class MainActivity extends Activity {

private final static String highscore = "Your High Score : ";
private ListView listMenu;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    
    ListMenu listMenuData[] = new ListMenu[]
    {
        new ListMenu(R.drawable.repetition, "Repetition\n" + highscore, 0)
    };
    
    ListMenuAdapter adapter = new ListMenuAdapter(this, R.layout.listmenu_item, listMenuData);
    
    listMenu = (ListView)findViewById(R.id.listMenu);
    
    View header = (View)getLayoutInflater().inflate(R.layout.listmenu_header, null);
    listMenu.addHeaderView(header);
    
    listMenu.setAdapter(adapter);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

这是用于 setter-getter 的 ListMenu:

public class ListMenu {
public int icon, highscore;
public String title;

public ListMenu(){
    super();
}

public ListMenu(int icon, String title, int highscore){
    super();
    this.icon = icon;
    this.title = title;
    this.highscore = highscore;
}

这是我的 ListMenuAdapter 类:

public class ListMenuAdapter extends ArrayAdapter<ListMenu> {
Context context;
int layoutResourceId;
ListMenu listmenu[] = null;

static class MenuHolder{
    ImageView imgMenuIcon;
    TextView txtTitle, txtHighScore;
}

public ListMenuAdapter (Context context, int layoutResourceId, ListMenu[] listmenu){
    super(context, layoutResourceId, listmenu);
    this.context = context;
    this.layoutResourceId = layoutResourceId;
    this.listmenu = listmenu;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View row = convertView;
    MenuHolder holder = null;
    
    if(row == null)
    {
        LayoutInflater inflater = ((Activity)context).getLayoutInflater();
        row = inflater.inflate(layoutResourceId, parent, false);
        
        holder = new MenuHolder();
        holder.imgMenuIcon = (ImageView)row.findViewById(R.id.imgMenuIcon);
        holder.txtTitle = (TextView)row.findViewById(R.id.txtTitle);
        holder.txtHighScore = (TextView)row.findViewById(R.id.txtHighScore);
        
        row.setTag(holder);
    }
    else holder = (MenuHolder)row.getTag();
    
    ListMenu menu = listmenu[position];
    holder.imgMenuIcon.setImageResource(menu.icon);
    holder.txtTitle.setText(menu.title);
    holder.txtHighScore.setText(menu.highscore);
    
    return row;
}

我遵循并修改了本教程中的代码:单击此处

有人说android.content.res.resources$NotFoundException可以通过清理项目/重新启动 Eclipse 来修复错误,但它对我不起作用

抱歉发了这么长的帖子,我现在真的不知道该怎么办谢谢:D

4

1 回答 1

2

如果是这样,那么这就是问题所在。你应该做 :

holder.txtHighScore.setText(""+menu.highscore);

因为menu.highscoreint,它将调用setText(int resId)加载您在strings.xml.

如果你放""+menu.highscore,它将调用setText(CharSequence text)你想要的。

于 2012-10-01T03:23:58.113 回答