Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android应用程序在电话中崩溃_Java_Android_Textview_Broadcastreceiver_Android Context - Fatal编程技术网

Java Android应用程序在电话中崩溃

Java Android应用程序在电话中崩溃,java,android,textview,broadcastreceiver,android-context,Java,Android,Textview,Broadcastreceiver,Android Context,这里是java和Android Studio的新手。我试图在检测到手机时将TextView设置为某个值。每次接到来电时,我的应用程序都会崩溃,我尝试了很多方法,但都没有效果。也许我在间接传递上下文 我在这里使用Gabe Sechan发布的代码: 主要活动: import android.content.Context; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import androi

这里是java和Android Studio的新手。我试图在检测到手机时将TextView设置为某个值。每次接到来电时,我的应用程序都会崩溃,我尝试了很多方法,但都没有效果。也许我在间接传递上下文

我在这里使用Gabe Sechan发布的代码:

主要活动:

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    private static Context mContext;
    public static Context getContext() {
        return mContext;
    }
    public void setContext(Context mContext) {
        this.mContext = mContext;
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Context c = MainActivity.getContext();
        TextView textView;
        new CallReceiver(c);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView=(TextView)findViewById(R.id.textView1);
    }
}
来电接受者:

import java.util.Date;
import android.content.Context;
import android.widget.TextView;

public class CallReceiver extends PhonecallReceiver {
    Context context;
    TextView textView;
    public CallReceiver(){}
    public CallReceiver(Context context)
    {
        this.context=context;
    }

    @Override
    protected void onIncomingCallReceived(Context ctx, String number, Date start)
    {
        textView=(TextView)((MainActivity)context).findViewById(R.id.textView1);
        textView.setText("SOMETHING");
    }

    @Override
    protected void onIncomingCallAnswered(Context ctx, String number, Date start)
    {
        textView=(TextView)((MainActivity)context).findViewById(R.id.textView1);
        textView.setText("SOMETHING");
    }

    @Override
    protected void onIncomingCallEnded(Context ctx, String number, Date start, Date end)
    {
        textView=(TextView)((MainActivity)context).findViewById(R.id.textView1);
        textView.setText("SOMETHING");
    }

    @Override
    protected void onOutgoingCallStarted(Context ctx, String number, Date start)
    {
        textView=(TextView)((MainActivity)context).findViewById(R.id.textView1);
        textView.setText("SOMETHING");
    }

    @Override
    protected void onOutgoingCallEnded(Context ctx, String number, Date start, Date end)
    {
        textView=(TextView)((MainActivity)context).findViewById(R.id.textView1);
        textView.setText("SOMETHING");
    }

    @Override
    protected void onMissedCall(Context ctx, String number, Date start)
    {
        textView=(TextView)((MainActivity)context).findViewById(R.id.textView1);
        textView.setText("SOMETHING");
    }
}

你能记录这次事故吗?我认为这根本不是更新用户界面的正确方法。我如何获取日志?