togglebuttonでテキストを変更する内容にしたいのですが、このエラーでボタンを押すとappが終了してしまいます。
何か足りないみたいなんですけどどうすれば上手くいきますか?
FATAL EXCEPTION: main
Process: com.example.bs.togglebutton, PID: 18809
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
メインアクティビティ.java
package com.example.bs.togglebutton;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.CompoundButton;
import android.widget.TextView;
import android.widget.ToggleButton;
public class MainActivity extends AppCompatActivity {
TextView textView; //←これを入れてみたら治ったのですが動きません ②
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ToggleButton tb = (ToggleButton) findViewById(R.id.toggleButton); tb.setTextOff("オフ"); tb.setTextOn("オン"); tb.setChecked(false); tb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { Log.d("ToggleButton", "OnCheckedChangeListenerが呼び出されました。"); textView.setText(isChecked ? "ON" : "OFF"); // ↑↑↑↑ ここがエラーになるので ① } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/19 08:05
2015/11/19 08:21