новичок в Java и Android Studio здесь.Я пытаюсь установить TextView в какое-то значение при обнаружении телефона. Мое приложение ломается каждый раз при входящем звонке, я пробовал много вещей, но ничего не работает.Может быть, я передаю контекст неправильно?
Я использую код, размещенный здесь Гейбом Сечаном: Как обнаружить входящие звонки на устройстве Android?
MainActivity:
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);
}
}
CallReceiver:
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");
}
}