このウェブサイトhttps://github.com/johnkil/SideNavigationのサンプル Sidenavigation アプリで遊んでいます。サンプル アプリを携帯電話に問題なくロードできました。私が達成しようとしているのは、メニュー項目を webview のさまざまな Web サイトにリンクすることです。以下のコードでは、サイドナビゲーション パネルに 1 つのボタンしかありません。次のコードを使用してボタンを webview にリンクしようとしましたが、アプリを読み込んでボタンをクリックすると、毎回アプリがクラッシュします。
`case R.id.side_navigation_menu_item1:
setContentView(R.layout.tab2);
break;`
完全なコードについては、以下を参照してください。
私はこれについて長い間ループに陥っていたので、どんな支援も大歓迎です。
以下は、アプリを閉じるときに発生するエラーです: 10-27 08:36:45.886: D/TilesManager(10889): フレームワークからの新しい EGLContext: 5182a990 10-27 08:36:45.886: D/GLWebViewState(10889) : シェーダーの再初期化 10-27 08:36:45.922: D/GLWebViewState(10889): transferQueue の再初期化 10-27 08:36:46.050: D/dalvikvm(260): GC_CONCURRENT 解放 2099K、19% 解放 23941K/29255K、一時停止 2ms +10ms、合計 217ms 10-27 08:36:46.050: D/dalvikvm(260): WAIT_FOR_CONCURRENT_GC ブロック 90ms 10-27 08:36:46.050: D/dalvikvm(260): WAIT_FOR_CONCURRENT_GC ブロック 50ms
ありがとうございました。
MainActivity.java
`package com.devspark.sidenavigation.sample;
import android.content.Intent;
import android.os.Bundle;
import android.widget.ImageView;
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.MenuItem;
import com.devspark.sidenavigation.sample.R;
import com.devspark.sidenavigation.ISideNavigationCallback;
import com.devspark.sidenavigation.SideNavigationView;
import com.devspark.sidenavigation.sample.News;
public class MainActivity extends SherlockActivity implements
ISideNavigationCallback {
public static final String EXTRA_TITLE = "com.devspark.sidenavigation.sample.extra.MTGOBJECT";
public static final String EXTRA_RESOURCE_ID = "com.devspark.sidenavigation.sample.extra.RESOURCE_ID";
private ImageView icon;
private SideNavigationView sideNavigationView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
icon = (ImageView) findViewById(android.R.id.icon);
sideNavigationView = (SideNavigationView) findViewById(R.id.side_navigation_view);
sideNavigationView.setMenuItems(R.menu.side_navigation_menu);
sideNavigationView.setMenuClickCallback(this);
if (getIntent().hasExtra(EXTRA_TITLE)) {
String title = getIntent().getStringExtra(EXTRA_TITLE);
int resId = getIntent().getIntExtra(EXTRA_RESOURCE_ID, 0);
setTitle(title);
icon.setImageResource(resId);
}
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
sideNavigationView.toggleMenu();
break;
default:
return super.onOptionsItemSelected(item);
}
return true;
}
public void onSideNavigationItemClick(int itemId) {
switch (itemId) {
case R.id.side_navigation_menu_item1:
setContentView(R.layout.tab2);
break;
default:
return;
}
finish();
}
@Override
public void onBackPressed() {
// hide menu if it shown
if (sideNavigationView.isShown()) {
sideNavigationView.hideMenu();
} else {
super.onBackPressed();
}
}
/**
* Start activity from SideNavigation.
*
* @param title
* title of Activity
* @param resId
* resource if of background image
*/
private void invokeActivity(String title, int resId) {
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra(EXTRA_TITLE, title);
intent.putExtra(EXTRA_RESOURCE_ID, resId);
// all of the other activities on top of it will be closed and this
// Intent will be delivered to the (now on top) old activity as a
// new Intent.
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
// no animation of transition
overridePendingTransition(0, 0);
}
}`
News.java
`import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebView;
public class News extends Activity {
private static String TAG = "WebViewTest";
private WebView mWebView;
public void onCreate(Bundle savedInstanceState) {
Log.i(TAG, "Entering onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = (WebView)findViewById(R.id.webview);
mWebView.clearCache(true);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("http://www.google.com");
Log.i(TAG,"Exiting onCreate");
}
}`
活動_main.xml
`<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@android:id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:contentDescription="@string/image_desc"
android:src="@drawable/android" />
<com.devspark.sidenavigation.SideNavigationView
android:id="@+id/side_navigation_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>`
tab2.xml
`<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<WebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbarStyle="outsideOverlay"
android:scrollbarFadeDuration="5"
android:fillViewport="true"/>
</RelativeLayout>`
side_navigation_menu.xml
`<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/side_navigation_menu_item1"
android:icon="@drawable/ic_action_side_navigation"
android:title="News"/>
</menu>`