2013-08-16 66 views
2

我正在爲Android創建一個應用程序,並且我想在上下文菜單中創建項目。 這不是一個問題,他們被顯示。但是當我點擊它們時,沒有任何反應。選擇菜單項沒有效果

我配置了我需要配置的東西,但我確實無法找到問題。你看到什麼了嗎?這裏是我的主要Java代碼的完整代碼。

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.webkit.WebView; 

public class MainActivity extends Activity{ 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    WebView myWebView = (WebView) findViewById(R.id.webView); 
    myWebView.loadUrl("ABC");} 




@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.optionsmenu, menu); 
    return true; 
} 
public boolean onOptionsItemSelected(MenuItem about) { 
    //respond to menu item selection 
    switch (R.menu.optionsmenu) { 
     case R.id.about: 
      startActivity(new Intent(this, SecondActivity.class)); 
      return true; 
     case R.id.download: 
      startActivity(new Intent(this, DownloadActivity.class)); 
      return true; 
     case R.id.impressum: 
      startActivity(new Intent(this, ImpressumActivity.class)); 
     case R.id.license: 
      startActivity(new Intent(this, LicenseActivity.class)); 
    } 
    return false; 
} 

我希望他們顯示活動,但沒有任何反應。

感謝您的幫助

感謝菲爾,物品選擇現在正在工作。在這裏我的其他代碼,應用程序每當我選擇其他代碼時就會崩潰。

這裏是LicenseActivity:

  import android.app.Activity; 
      import android.os.Bundle; 
      import android.webkit.WebView; 

      /** 
      * Created by Florent on 16.08.13. 
      */ 
      public class LicenseActivity extends Activity { 
         public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
         WebView myWebView = (WebView) findViewById(R.id.licenseview); 
         myWebView.loadUrl("URL"); 
         } 
      } 

第二活動僅僅是一個設計活動,其他activitys是薩姆斯作爲許可活動。

回答

0

我看到你的錯誤。您需要使用MenuItem.getItemId()return switch返回super.onOptionsItemSelected();

public boolean onOptionsItemSelected(MenuItem about) { 
    //respond to menu item selection 

    switch (about.getItemId()) { // call this here 
     case R.id.about: 
      startActivity(new Intent(this, SecondActivity.class)); 
      return true; 
     case R.id.download: 
      startActivity(new Intent(this, DownloadActivity.class)); 
      return true; 
     case R.id.impressum: 
      startActivity(new Intent(this, ImpressumActivity.class)); 
     case R.id.license: 
      startActivity(new Intent(this, LicenseActivity.class)); 
    } 

    return super.onOptionsItemSelected(about); // return this instead of false 
} 

另外,不要忘記註冊清單文件內的活動情況。

並確保您在您的Activity的onCreate()方法內調用setContentView(...)

public class LicenseActivity extends Activity { 

    public void onCreate(Bundle savedInstanceState) { 

      super.onCreate(savedInstanceState); 

      setContentView(R.layout.whateveryourlayoutis); // DONT FORGET THIS 

      WebView myWebView = (WebView) findViewById(R.id.licenseview); 
      myWebView.loadUrl("URL"); 
    } 
} 
+0

我試過你的代碼,然後它做了一些事情,當我點擊,謝謝你,但幾秒鐘後,每次應用程序崩潰並關閉本身。 – user2689457

+0

選擇一個項目後,您的應用可能會有很多原因關閉。但重要的是選擇項目現在正在工作。請根據您現在收到的錯誤消息,選擇正確的答案,考慮打開一個新問題。 –

+0

好的...你能看看我的其他代碼嗎?我編輯我的問題 – user2689457