HOw Android Studioで呼び出すメソッドとは異なるクラスでメソッドを使用しますか?私は、次の主要なクラスがあります。 Android Studioで別のクラスを使用する
package com.example.bluebus;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import static java.util.concurrent.TimeUnit.SECONDS;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BeeperControl test = new BeeperControl();
//test.test();
//test.test();*/
}
}
と同じフォルダに
私は、次のBeeperControlクラスがあります。 あるように書かimport java.util.concurrent.ScheduledFuture;
import static java.util.concurrent.TimeUnit.SECONDS;
/**
* Created by Arthur on 1/7/2017.
*/
public class BeeperControl extends AppCompatActivity {
/*private final ScheduledExecutorService scheduler =
Executors.newScheduledThreadPool(1);*/
final TextView text = (TextView) findViewById(R.id.text);
/*
public void beepForAnHour() {
final Runnable beeper = new Runnable() {
public void run() {
text.setText("Hello!");
}
};
final ScheduledFuture<?> beeperHandle =
scheduler.scheduleAtFixedRate(beeper, 0, 1, SECONDS);
scheduler.schedule(new Runnable() {
public void run() { beeperHandle.cancel(true); }
}, 60 * 60, SECONDS);
}*/
public void test(){
text.setText("Who are you?");
}
}
、アプリが正常に動作します。しかし、私がtest.test()のコメントを外すと、エミュレータで実行しようとするとアプリケーションが閉じたままになります。私が見てきたことから、マニフェストの更新には問題があるかもしれませんが、修正方法はわかりません。どんな助けもありがとう!
これで何を達成しようとしていますか?なぜ 'BeeperControl'の' onCreate'の外側で 'findViewById(R.id.text);を呼び出すのですか? (これはあなたに 'NullPointerExeption' BTW) –
ボトムラインを与えます、あなたはアクティビティをインスタンス化するために' new'を使うことは決してありません。 LocalBroadcast、EventBusなどを使用する必要があります。リンクされた複製の両方を見てください。 –