2011-11-29 54 views
1

這是平常的活動。問題出在onCreateOptionMenu上。當我點擊菜單按鈕時,什麼都沒有完成。我看不出問題在哪裏。onCreateOptionMenu android Issue

我也嘗試評論所有沒有菜單的代碼,但它仍然不起作用。 它可以是一個很奇怪的問題,或者我不明白一些簡單的東西..如果

import java.io.File; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.OutputStream; 

import android.app.Activity; 
    import android.content.Intent; 
    import android.content.res.AssetManager; 
    import android.os.Bundle; 
    import android.os.Environment; 
    import android.util.Log; 
    import android.view.Menu; 
    import android.view.View; 
    import android.view.View.OnClickListener; 
    import android.view.Window; 
    import android.widget.LinearLayout; 
public class Izu4aikaActivity extends Activity implements OnClickListener { 

    public final int INFO = 101; 
    public final int BLOCK = 102; 
    public final int CLOSE = 103; 
    final String sdDir = Environment.getExternalStorageDirectory()+"/izuchaika/"; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.main); 

     // Thread to write files to SD 

     final String file = "Files"; 
     File dir = new File(sdDir); 
     dir.mkdir(); 
     dir.mkdirs(); 

     new Thread(new Runnable() { 
      public void run() { 
       copyFileOrDir(file); 
      } 
     }).start(); 

     LinearLayout ll = (LinearLayout) findViewById(R.id.main_layout); 
     ll.setOnClickListener(this); 
    } 

    //Menu 
    public boolean onCreateOptionMenu(Menu menu) { 
     menu.add(Menu.NONE, INFO, Menu.NONE, "О программе").setIcon(
       R.drawable.info); 
     menu.add(Menu.NONE, BLOCK, Menu.NONE, "Блокировать").setIcon(
       R.drawable.block); 
     menu.add(Menu.NONE, CLOSE, Menu.NONE, "Выход").setIcon(R.drawable.exit); 
     return super.onCreateOptionsMenu(menu); 
    } 

    @Override 
    public void onClick(View v) { 
     Intent i = new Intent(this, mScr.class); 
     startActivity(i); 
    } 

    private void copyFileOrDir(String path) { 
     AssetManager assetManager = this.getAssets(); 
     String assets[] = null; 
     try { 
      assets = assetManager.list(path); 
      if (assets.length == 0) { 
       copyFile(path); 
      } else { 
       String fullPath = sdDir + path; 
       File dir = new File(fullPath); 
       if (!dir.exists()) 
        dir.mkdir(); 
       for (int i = 0; i < assets.length; ++i) { 
        copyFileOrDir(path + "/" + assets[i]); 
       } 
      } 
     } catch (IOException ex) { 
      Log.e("tag", "I/O Exception", ex); 
     } 
    } 

    private void copyFile(String filename) { 
     AssetManager assetManager = this.getAssets(); 

     InputStream in = null; 
     OutputStream out = null; 
     try { 
      in = assetManager.open(filename); 
      String newFileName = sdDir + filename; 
      out = new FileOutputStream(newFileName); 

      byte[] buffer = new byte[1024]; 
      int read; 
      while ((read = in.read(buffer)) != -1) { 
       out.write(buffer, 0, read); 
      } 
      in.close(); 
      in = null; 
      out.flush(); 
      out.close(); 
      out = null; 
     } catch (Exception e) { 
      Log.e("tag", e.getMessage()); 
     } 

    } 

} 

幫助你看到一個解決方案。

+0

你在onCreateOptionMenu中返回true嗎?我不知道超級實現返回的是什麼。 – fhucho

回答

4

你拼寫錯誤的方法名稱 - 它應該是onCreateOptionsMenu(),而不是onCreateOptionMenu()。 這是最好使用@Override註解來避免這樣的錯誤:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

這樣,它會給你編譯時錯誤如果拼錯方法名稱或使用錯誤的參數。

+0

哦,是的,我同意弗拉基米爾 – Style

+0

yeap,thnx ..... – Val

0

嘗試添加 @Override to public boolean onCreateOptionMenu
您是否嘗試使用MenuInflater並從xml中充氣菜單?

1

更改onCreateOptionsMenu到:

//Menu 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    menu.add(Menu.NONE, INFO, Menu.NONE, "О программе").setIcon(
      R.drawable.info); 
    menu.add(Menu.NONE, BLOCK, Menu.NONE, "Блокировать").setIcon(
      R.drawable.block); 
    menu.add(Menu.NONE, CLOSE, Menu.NONE, "Выход").setIcon(R.drawable.exit); 
    return true; 
} 

應該現在的工作!

+0

thnx你很多.. – Val