2012-10-01 81 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 –