簡単な一般的な質問です。android startActivity from JavascriptInterface
Webviewは私のJavascriptInterfaceクラスに接続されています。しかし、JavascriptInterfaceはActivityを拡張しないので、startActivity(intent)を使って新しいアクティビティをIntentにすることはできません。
アクティビティを拡張する必要がありますか?別の活動を行う別の方法がありますか?ただ、mContext.startActivity(i)
を使用
package com.privateized.moreprivate;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.util.Log;
import android.widget.Toast;
public class JavaScriptInterface {
Context mContext;
/** Instantiate the interface and set the context */
JavaScriptInterface(Context c) {
mContext = c;
}
/** Show a toast from the web page */
public void showToast(String toast) {
Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
}
///// vvvvv This no Worky vvvvv Just crashes ////////
public void YouTube(String id) {
Log.d("JS", "Launching YouTube:" + id);
Activity activity = new Activity();
String videoId = id;
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("vnd.youtube:"+videoId));
i.putExtra("VIDEO_ID", videoId);
Log.d("JS", "Starting Activity");
activity.startActivity(i);
}
}
'アクティビティ活動は=新しい活動()持っていけないのwouldnt;' - ドン」にこれまで何もしなかった。 Androidの「Activity」クラスは、そのように直接インスタンス化されることは決してありません。 sgarmanからの回答は、必要なものに対して機能するはずです。 – Squonk