0
原始代碼已被刪除,顯示新的工作代碼。代碼背後的想法是在佈局中創建一個新的textView,該佈局具有用戶提供的自定義名稱。此前,NPE錯誤正在發生。這是一個修復。有任何問題,請隨時詢問。從對話框創建按鈕時
編輯:找到該溶液
的修復需要被如下:
accountEdit = new EditText(this); // accountEdit needs to be a global variable
然後內builder.setPositiveButton
builder.setPositiveButton(R.string.btn_save, new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dInterface, int whichButton)
{
LinearLayout lineLayout = (LinearLayout)findViewById(R.id.linear_layout);
String newAccountName = accountEdit.getText().toString();
newTextView = new TextView(getBaseContext() );
newTextView.setVisibility(View.VISIBLE);
newTextView.setText( newAccountName );
newTextView.setId(id);
newTextView.setTextSize(35);
newTextView.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
onClickNew(view);
}
});
newTextView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
Toast.makeText(getBaseContext(), "Testing" , Toast.LENGTH_LONG).show();
return true;
}
});
這將創建按鈕,如圖以及將按鈕的名稱設置爲對話框中EditText中的信息。以前,EditText來自另一項活動,並被錯誤地稱爲NPE。感謝您的幫助。
在XML中是否有R.id.newAccountButton? – Catherine
不看所有的代碼,我會猜測這是因爲dialog有一個視圖,所以如果你在Dialog類中調用'findViewById',它實際上調用dialogView.findViewById而不是你的activity findViewById()。 – Wenhui