有人能告诉我问题在哪里吗?
Button conn_btn;
Button send_btn;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
conn_btn = (Button)findViewById(R.id.conn_btn);
send_btn = (Button) findViewById(R.id.send_btn);
...
}
public void changeConnectionStatus(Boolean status, Context context) {
connected = status;
if(status){
conn_btn.setText(context.getString(R.string.disconnect));
send_btn.setVisibility(View.GONE);
}else{
conn_btn.setText(context.getString(R.string.connect));
send_btn.setVisibility(View.VISIBLE);
}
}
调用changeConnectionStatus(...)时,我一直收到“java.lang.NullPointerException”错误!
答案 0 :(得分:0)
我试图从AsyncTask“doInBackGround()”更新按钮......所以,解决方法是从“onPostExecute()”更新它。我也在findViewById之前调用changeConnectionStatus()(感谢user2707175)。
答案 1 :(得分:-1)
您没有提供太多信息。请加入Logcat。
我想到的两个最可能的原因:
- 在onCreate方法findViewById
中找不到具有给定ID的按钮
- 您有时在changeConnectionStatus
findViewById