Javascript 安卓工作室可以';我没办法打电话
按钮在没有WebView的情况下单独工作,但我添加了只有WebView工作,单击按钮没有任何作用 这是我的maintactivty.javaJavascript 安卓工作室可以';我没办法打电话,javascript,java,android,android-studio,Javascript,Java,Android,Android Studio,按钮在没有WebView的情况下单独工作,但我添加了只有WebView工作,单击按钮没有任何作用 这是我的maintactivty.java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myWebView = (WebView) findVi
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myWebView = (WebView) findViewById(R.id.myWebView);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.loadUrl("http://");
}
Intent intentCall;
public void onClick(View v){
intentCall.setAction("android.intent.action.CALL");
intentCall.setData(Uri.parse("tel:"));
startActivity(intentCall);
finish();
}}
这是我的舱单
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.yellowribbon.evindrake.yellowribbonv3" >
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
<activity android:name=".MainActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Activity_Main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="org.yellowribbon.evindrake.yellowribbonv3.MainActivity">
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="@+id/myWebView"
android:layout_alignParentBottom="true" />
<Button
android:text="@string/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
</RelativeLayout>
将代码添加到activity\u main.xml文件中的内部按钮组件中
android:onClick="onClick"
用户可以按下或单击按钮来执行操作 活动中按钮的典型用法如下: 但是,您可以使用
android:onClick
为XML布局中的按钮指定方法,而不是将OnClickListener
应用于活动中的按钮您正在尝试在没有此属性的情况下实现此目标强>
现在,当用户单击按钮时,Android系统调用活动的myClickMethod(View)
(我创建的)方法。为了使其工作,该方法必须是公共的,并接受视图作为其唯一参数。例如:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="myClickMethod"
android:text="button" />
由于Intent intentCall
使用onClick(视图v)
如下所示
public void onClick(View v) {
String number = "18002738255";
Uri call = Uri.parse("tel:" + number);
Intent surf = new Intent(Intent.ACTION_CALL, call);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
return;
}
startActivity(surf);
}
发布您的XML!你是说你的buton在没有webView的情况下打电话,但是当你添加webView时它不起作用?好的,这是我的活动Main,你能回答我的问题吗?如果没有webView,它能工作吗?是的,它不能工作是的。你没有将你的侦听器指向你的按钮,这就是为什么应用程序仍然崩溃。。。我复制了粘贴的代码,它将id更改为我添加的call方法,但它仍然崩溃。@Evin Drake您不需要做任何其他更改,一旦您指向您的onClick方法,使用我的onClick方法并运行它,它将工作我粘贴了它,它仍然崩溃谢谢您现在正在工作。感谢您的快速回复:D@Evin德雷克:如果这对你有帮助的话,你可以把它标记为答案/投票:哦,我的上帝,谢谢你现在工作得很好。多谢各位
public void myClickMethod(View view) {
// Perform action on click after identify the view
}
public void onClick(View v) {
String number = "18002738255";
Uri call = Uri.parse("tel:" + number);
Intent surf = new Intent(Intent.ACTION_CALL, call);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
return;
}
startActivity(surf);
}