所以我有一个简单的应用程序,有一个按钮和一个文本视图,当按钮被点击(错误是应用程序只是崩溃)一个对话框弹出,从对话框弹出,将有一个文本字段和一个按钮。我将在文本字段中输入一个名称,当我单击该按钮时,文本视图(在主activity中)将被设置为我输入的名称(从alertdialog中)。
mainactivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
AlertDialog.Builder dialogBuilder;
AlertDialog dialog;
EditText txt;
TextView title;
Button btn, btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showPopup();
}
});
}
public void showPopup(){
dialogBuilder = new AlertDialog.Builder(this);
View popup = getLayoutInflater().inflate(R.layout.popup_tab, null);
btn2 = (Button) findViewById(R.id.button2);
txt = (EditText) findViewById(R.id.idtxt);
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String theTxt = txt.getText().toString();
title.setText(theTxt);
}
});
dialogBuilder.setView(popup);
dialog = dialogBuilder.create();
dialog.show();
}
}
Logcat中的错误
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at com.example.listenertest.MainActivity.showPopup(MainActivity.java:41)
at com.example.listenertest.MainActivity$1.onClick(MainActivity.java:30)
更改按钮和EditText声明,因为这些视图位于AlertDialog布局中(例如,在您的情况下是弹出)
btn2 = (Button) popup.findViewById(R.id.button2);
txt = (EditText) popup.findViewById(R.id.idtxt);
因为弹出视图属于它,所以您需要更改:
btn2 = (Button) findViewById(R.id.button2);
txt = (EditText) findViewById(R.id.idtxt);
致:
btn2 = (Button) popup.findViewById(R.id.button2);
txt = (EditText) popup.findViewById(R.id.idtxt);
问题内容: 我收到以下错误 尝试在空对象引用上调用虚拟方法’void android.widget.StackView.setAdapter(android.widget.Adapter)’ 在这条线上 完整的片段 EventsFragment.java 是 Stack_Adapter.java Stack_Items 问题答案: 您正在执行: 你是。返回。 你为什么用? 在哪里?您应该从正确的x
我的应用程序有问题,想解决它,但我无法访问解决方案,请帮帮我,,
问题内容: 我尝试使用片段来打开数据库,但是,当我单击按钮开始搜索时,程序意外终止,并显示如下错误: 主片段: DBManager类: 顺便说一句,我在MainAcitivity中使用了有关DBManager的代码,并且成功了。将代码复制到上面的片段后,它失败了,该怎么办? 问题答案: 之前和之后你都做不到。 因为,您正在执行片段实例化时。该方法将始终返回null。另外,尽量不要将参考文献保留在您
问题内容: 我正在尝试将播放器的名称保存为共享的首选项,并通过再次以共享的首选项获取它的名称来使其显示在另一个活动中,但是我的应用程序崩溃了。 致命异常:主要 代码: 播放器 PlayGame.java PlayerName.java 问题答案: 您的应用在以下位置崩溃: 因为。 您忘记在PlayGame活动中进行初始化。
我面临着这个错误: 主要活动: 谢谢你的帮助。
我尝试使用一个片段来打开一个数据库,但是,当我单击按钮开始搜索时,程序意外地终止,它显示这样的错误: 主要片段: 类DBManager: 顺便说一句,我在MainActivity中使用了关于DBManager的代码,它成功了。在我将代码复制到上面的片段后,它失败了。我该怎么办?