好的,所以我想让我的应用程序在我的手机上工作,看它是否有效。我注意到我想拨打电话的按钮没有做任何事情。这是代码:
public boolean onStart(Bundle savedInstanceState) {
View callButton2 = null;
callButton2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
try {
Intent i = new Intent(Intent.ACTION_CALL);
String p = "tel:" + getString(R.string.phoneNumber);
i.setData(Uri.parse(p));
startActivity(i);
} catch (ActivityNotFoundException activityException) {
Log.e("Calling a Phone Number", "Call failed", activityException);}
finally{}
}
我将权限放在Manifest文件中,但它仍然不起作用。所以我正在调查并发现我的所有来源都没有找到。这会严重破坏我的应用程序,还是无关紧要?另外,我如何让他们回来?
答案 0 :(得分:2)
你从这里调用了这个函数“onStart(Bundle savedInstanceState)”
public boolean onStart(Bundle savedInstanceState) {
View callButton2 = null;
callButton2.setOnClickListener(new OnClickListener() { // <---
这一行会引发NPE错误。
因此,当您的应用运行时,我们无法调用此功能public boolean onStart(Bundle savedInstanceState)
答案 1 :(得分:1)
方法onStart()
应为
public void onStart()
{
super.onStart();
...
}
由于该方法不正确,Android在Activity Lifecycle
期间根本不会调用它。尝试修复它,然后将OnClickListener
放入其中。
编辑:此外,最好在Views
而非onCreate()
初始化onStart()
。
就像Dheeresh Singh所说,你也会因NullPointerException
而崩溃,因为你将Button
指定为空。您首先需要通过调用Button
或在代码中创建它来将其分配给布局中的findViewById()
。现在你实际上是在调用null.setOnClickListener()
,这没有任何意义。