我製作了自定義EditText,以便可以覆蓋在屏幕上有鍵盤時按下後退鍵時會發生的情況。 (Based on an answer to this linked question)Android - 使用自定義onKeyPreIme(背壓)更改按鈕文本和TextView可見性
我想按下返回鍵時做的是四兩件事:設置一個布爾值,更改自定義的EditText的文字,改變一個按鈕的文本,並改變一個TextView的知名度。所有這四個都在不同的文件中(我相信這可能是導致問題的原因)。但我可以找到他們,並調整其中兩個沒有崩潰。
public class NiceEditText extends EditText {
Context context;
public NiceEditText(Context contx, AttributeSet attrs){
super(contx,attrs);
this.context = contx;
}
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (ListActivity.addedTitle) ListActivity.addedTitle = false;
NiceEditText editItem = (NiceEditText) findViewById(R.id.editItem);
editItem.setText("");
Button niceButton = (Button) findViewById(R.id.niceButton);
// niceButton.setText(R.string.addItem);
TextView addingTitle = (TextView) findViewById(R.id.addingTitle);
// addingTitle.setVisibility(View.INVISIBLE);
}
return super.onKeyPreIme(keyCode, event);
}
}
這兩個註釋行導致應用程序由於NullPointerException而崩潰。我不知道這是因爲它找不到Button或TextView,但它可以找到NiceEditText並將其更改。
問:如何更改Button的文本和TextView的可見性?