2012-10-01 117 views
1

这是我的日志猫:致命异常:Eclipse主错误

enter image description here

它说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; 
} 

这是ListMenu,进行setter的getter:

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; 
} 

我跟着并修改了本教程中的代码:click here

有人说:android.content.res.resources$NotFoundException误差可以通过清洁工程/重新启动Eclipse的是固定的,但它不是为我工作

对不起,长的帖子,我真的不知道现在该做什么 感谢: D

+0

logcat指出第52行,哪行是你的'ListMenuAdapter'? – Aprian

+0

当我双击它,它来到 holder.txtHighScore.setText(menu.highscore); 但为什么我不能双击其他? THanks:D –

+1

,因为其他行不在您定义的类上。 – Aprian

回答

2

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

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

由于menu.highscoreint,它会调用方法setText(int resId)它加载您在您的strings.xml定义的assossiated资源ID。

如果你把""+menu.highscore,它会调用setText(CharSequence text)这是你想要的。

+0

OMG ...但是当我检查它时,它说“int resid”是在setText参数中的,所以为什么我们必须做“”+? 无论如何,这解决了我的问题..谢谢:D –

+1

是'resId',我在那里添加了解释。 – Aprian

+0

好吧,我明白了 谢谢:D –