我是android studio的新手,我不明白为什么当我开始使用探索栏时,我的应用程序会崩溃。谁能帮帮我?
公共类MainActivity扩展AppCompatActivity { SeekBar seekBar;//声明SeekBar object TextView textView,textView2;ListView simpleListview;//为seekbar声明成员变量int start = 50;int start_position = 50;//进度跟踪器int temp = 0;//为ViewStub ViewStub存根声明对象;CheckBox checkBox;Listview lv;//声明列表查看对象按钮按钮;查看视图;
public MainActivity() {
discrete = 0;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//declare viewstub object
stub = findViewById(R.id.viewStub1);
@SuppressWarnings("unused")
View inflated = stub.inflate();
stub.setVisibility(View.INVISIBLE);
//ViewStub logic
checkBox = findViewById(R.id.checkBox1);
//handle checkbox click event
checkBox.setOnCheckedChangeListener(new CheckBox.OnCheckedChangeListener(){
public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {
if (isChecked) {
//remove objs from parent view to allow for child view objs
checkBox.setVisibility(View.GONE);
seekBar.setVisibility(View.GONE);
textView.setVisibility(View.GONE);
stub.setVisibility(View.VISIBLE);
}
}
});
//seekbar logic
textView = findViewById(R.id.textview);
textView = findViewById(R.id.textView2);
textView.setText(" Celsius at 0 degrees");
//set default view
seekBar = findViewById(R.id.seekbar);
seekBar.setProgress(start_position);
//create event handler for SeekBar
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
if (temp == 0) {
//for initial view result
//Toast.makeText(getBaseContext(), "Fahrenheit result: 32 degrees",
//Toast.LENGTH_SHORT).show();
textView2.setText("Fahrenheit result 32 degrees") ;
}
else{
//Toast.makeText(getBaseContext(), "Fahrenheit result: "
//+ String.valueOf(discrete) +
//" degrees",Toast.LENGTH_SHORT).show();
textView2.setText("Fahrenheit result:" + String.valueOf(discrete) + "degrees");
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar){ }
@Override
public void onProgressChanged(SeekBar seekBar,
int progress, boolean fromUser) {
// To convert progress passed as discrete (Fahrenheit) value
temp = progress - start;
discrete = (int) Math.round((((temp * 9.0) /
5.0) + 32));
//convert C to F temp textView.setText(" Celsius at " + temp + " degrees");
textView.setText(" Celsius at " + temp + " degrees");
}
});发布于 2019-09-22 04:29:12
textView = findViewById(R.id.textview);
textView = findViewById(R.id.textView2);textView2未在此处初始化...
将上述代码更改为
textView = findViewById(R.id.textview);
textView2 = findViewById(R.id.textView2);发布于 2019-09-22 13:58:14
TextView textView = findViewById(R.id.textview);TextView textView2 = findViewById(R.id.textView2);
发布于 2019-09-22 17:55:18
初始化textView2您似乎错过了这一部分
https://stackoverflow.com/questions/58043801
复制相似问题