textView.setText()错误-Android

textView.setText()错误-Android,android,Android,我知道StackOverflow上有很多关于这个主题的表单,但是没有一个是适合我的 当我运行代码时: muteText.setText("Testing") 我犯了一个错误 MainActivity.java //Class Variables Button startTime; Button endTime; TextView muteTime; TextView unmuteTime; int hour; int minute; @Override protected void

我知道StackOverflow上有很多关于这个主题的表单,但是没有一个是适合我的

当我运行代码时:

muteText.setText("Testing")
我犯了一个错误

MainActivity.java

//Class Variables

Button startTime;
Button endTime;

TextView muteTime;
TextView unmuteTime;

int hour;
int minute;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //Define Variables
    startTime = (Button)findViewById(R.id.startButton);
    endTime = (Button)findViewById(R.id.endTime);
    muteTime = (TextView)findViewById(R.id.muteText);
    Log.i("SchedMute", "muteTime: " + muteTime.getText().toString());
    unmuteTime = (TextView)findViewById(R.id.unmuteTime);



    //Button Listeners
    startTime.setOnClickListener(this);
    endTime.setOnClickListener(this);

    //--\\
    hour = 0;
    minute = 0;




}

public void onClick(View v){
    int id = v.getId();

    if(id == R.id.startButton){ //Selecting time 2 Mute phone
        showTimePickerDialog(v);
    }
}

public void setStartTime(){
    muteTime.setText("Testing Testing 123");
}
(上一个方法(setStartTime)中出现错误)

我这样做是在另一个类中调用该方法:

MainActivity activity = new MainActivity();
activity.setStartTime();
我花了整整30分钟想弄明白这一点。 错误:


在活动完成创建之前调用setText。您需要从新活动onCreate()调用该函数

使用
new
无法正确创建
活动的实例。千万不要尝试这样做,它不会给你你期望的行为

如果您需要从附加到
片段的
活动
中调用方法,则应使用经批准的使用“回调”接口的方法


请参见以下内容-尽管它是关于与其他
片段
通信的,但它也是
片段
与其所连接的
活动
通信的方式。

您永远不应该调用活动的构造函数。如果这样做,则其活动生命周期将不会发生。我猜你是在时间选择器对话框中这样做的,你应该让该活动成为一个监听器(或传入一个匿名的内部类监听器)来处理设定的时间。

如果你的问题显示你需要回到绘图板上,请不要不尊重,你不应该从活动的外部调用一个TextView的Stter。考虑使用<代码> StistActuvyFultReult()/<代码>或<代码> SydPrase可能的副本可能希望将启动时间传递给额外参数中的活动,检查这个问题:并使用StistAcactivity启动一个活动。@ Squonk,我认为它是,因为基本的调试还没有执行,这个问题解释了如何。OP甚至没有公布导致撞车的线路,并且错误地确定了导致撞车的另一种方法。因此,问题的
如何解决它
部分非常相关。
07-29 12:29:44.034  19958-19958/myApp.com.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: myApp.com.app, PID: 19958
    java.lang.NullPointerException
            at myApp.com.app.MainActivity$TimePickerFragment.onTimeSet(MainActivity.java:96)
            at android.app.TimePickerDialog.tryNotifyTimeSet(TimePickerDialog.java:223)
            at android.app.TimePickerDialog.onClick(TimePickerDialog.java:173)
            at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:170)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:146)
            at android.app.ActivityThread.main(ActivityThread.java:5678)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
            at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
            at dalvik.system.NativeStart.main(Native Method)
MainActivity activity = new MainActivity();