Java Android更改文本查看文本

Java Android更改文本查看文本,java,android,Java,Android,我被这些问题困扰了好几天,我不知道我的问题是什么。我现在真的需要一些帮助,我可以在这里帮助我。这是我的密码 public class MainActivity extends AppCompatActivity implements LocationListener { TextView text; String trip; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(s

我被这些问题困扰了好几天,我不知道我的问题是什么。我现在真的需要一些帮助,我可以在这里帮助我。这是我的密码

public class MainActivity extends AppCompatActivity implements LocationListener {

TextView text;
String trip;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    text = (TextView) findViewById(R.id.id_trip);
    scheduleAlarm();

}

@Override
public void onStatusChanged(String provider, int status, Bundle extras){
}

@Override
public void onProviderEnabled(String provider) {}

@Override
public void onProviderDisabled(String provider) {}


public void onLocationChanged(Location location) {
    new MyAsyncTask ().execute();
}

public class MyAsyncTask extends AsyncTask<String, String, String> {

    @Override
    protected void onPreExecute() {
    }

    @Override
    protected String doInBackground(String... arg0) {
        trip = "Hai";
        return null;
    }

    @Override
    protected void onPostExecute(String strFromDoInBg) {
        text.setText(trip);
    }
}

public void scheduleAlarm() {
    Intent intent = new Intent(getApplicationContext(), Track.class);
    final PendingIntent pIntent = PendingIntent.getBroadcast(this, Track.REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    AlarmManager alarm = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
    alarm.setInexactRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(), 60 * 1000, pIntent);
}
}
田径课

public class Track extends BroadcastReceiver {
public static final int REQUEST_CODE = 12345;

@Override
public void onReceive(Context context, Intent intent) {
    Intent i = new Intent(context, Services.class);
    context.startService(i);
}}
错误是:

java.lang.NullPointerException:尝试调用虚拟方法 空值上的“android.view.view android.view.Window.findViewById(int)” 对象引用


谢谢

您正在从doInBackground返回
null
值,这就是您获得
NullPointerException
的原因

使用以下代码更改
MyAsyncTask
代码

public class MyAsyncTask extends AsyncTask<String, String, String> {

    @Override
    protected void onPreExecute() {
       if(text==null){
       text = MainActivity.this.findViewById(R.id.id_trip);
      }
    }

    @Override
    protected String doInBackground(String... arg0) {
        trip = "Hai";
        return trip;
    }

    @Override
    protected void onPostExecute(String strFromDoInBg) {
        text.setText(strFromDoInBg);
    }
}
公共类MyAsyncTask扩展了AsyncTask{
@凌驾
受保护的void onPreExecute(){
if(text==null){
text=MainActivity.this.findViewById(R.id.id\u行程);
}
}
@凌驾
受保护的字符串doInBackground(字符串…arg0){
trip=“海”;
回程;
}
@凌驾
受保护的void onPostExecute(字符串strFromDoInBg){
text.setText(strFromDoInBg);
}
}
以下是您的错误:

TextView text = (TextView) main.findViewById(R.id.id_trip);
text.setText(string);

您无法从
服务
获取类似于此的
文本视图
对象。将
TextView
对象创建为静态对象,或使用
BroadcastReceiver
setText(String str)
method中删除以下两行

MainActivity main = new MainActivity();
TextView text = (TextView) main.findViewById(R.id.id_trip);

希望这会对您有所帮助。

请提供完整的日志问题解决在文本视图中添加静态的问题好的,但在发布的代码中,
setText
服务
类中从未调用过?那么你怎么可能得到那个错误呢?我没有使用设置文本I'm Services类。
MainActivity main = new MainActivity();
TextView text = (TextView) main.findViewById(R.id.id_trip);