私は問題で戦っています。 Textviewsに整数値を表示し、毎秒更新させたいAndroid Update/Refresh TextView
私の整数MainActivityで
public Integer Money[] = new Integer[1];
public void MoneyMaker(int count,int c){
Money[c] = count;
}
public void MakeMoney(){
int count = 0;
MoneyMaker(0, count);
}
オブジェクト私は
MainHolder Main = new MainHolder();
としてそれらに達する私はこれらのようなTextViewになった:mainActivityのonCreateメソッド
で<TextView
android:text="Money: "
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/MoneyText"
android:layout_marginLeft="67dp"
android:layout_marginStart="67dp"
android:layout_alignTop="@+id/btn_Money"
android:layout_toRightOf="@+id/btn_Money"
android:layout_toEndOf="@+id/btn_Money"
android:layout_marginTop="38dp" />
<TextView
android:text="Box: "
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/BoxesText"
android:layout_marginLeft="67dp"
android:layout_marginStart="67dp"
android:layout_alignTop="@+id/btn_Boxes"
android:layout_toRightOf="@+id/btn_Boxes"
android:layout_toEndOf="@+id/btn_Boxes"
android:layout_marginTop="38dp" />
ガット "ĢameLoop"
Thread t = new Thread() {
@Override
public void run() {
try {
while (!isInterrupted()) {
Thread.sleep(1000);
runOnUiThread(new Runnable() {
@Override
public void run() {
Refresh();
SaveFile();
}
});
}
} catch (InterruptedException e) {
}
}
};
t.start();
とリフレッシュ方法
public void Refresh(){
TextView MoneyTXT = (TextView) findViewById(R.id.MoneyText);
MoneyTXT.setText("Money: " +Main.Money[0]);
TextView BoxesTXT = (TextView) findViewById(R.id.BoxesText);
BoxesTXT.setText("Boxes: " +Main.Boxes[0]);
}
OnCreateのクラス
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_navigation);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
LoadFile();
Thread t = new Thread() {
@Override
public void run() {
try {
while (!isInterrupted()) {
Thread.sleep(1000);
runOnUiThread(new Runnable() {
@Override
public void run() {
Refresh();
SaveFile();
}
});
}
} catch (InterruptedException e) {
}
}
};
t.start();
}
を得た私は、コード内のエラーを表示しませんが、アプリを起動したときに、それが自動的にで停止します。エラーが示すように
11-07 19:10:10.007 29809-29809/com.crelix.crelix E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.crelix.crelix, PID: 29809
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at com.crelix.crelix.NavigationActivity.Refresh(NavigationActivity.java:147)
at com.crelix.crelix.NavigationActivity$1$1.run(NavigationActivity.java:66)
at android.os.Handler.handleCallback(Handler.java:810)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:189)
at android.app.ActivityThread.main(ActivityThread.java:5529)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:950)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)
可能な複製をコーディングハッピー[NullPointerExceptionがある、と私はそれをどのように修正すればよいか?](http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how -do-i-fix-it) –
Main.Money [0]とMain.Boxes [0]はどこで初期化されますか? – compte14031879
クラス全体を投稿してください。 –