android - 使用额外意图时出现 NullPointerException
问题描述
所以昨天我做了一些编码,我从我的 SQL 数据库中获取数据以显示到一个对话框中,然后我有一个按钮将用户带到用户可以更新数据的更新页面,所以我曾经intent.putExtra
得到一个自动更新的填充方法edit box
。当我昨天运行代码时,一切都运行良好,但今天当我运行它时,我收到以下错误:
FATAL EXCEPTION: main
Process: Calculator.curtainclub, PID: 18730
java.lang.RuntimeException: Unable to start activity ComponentInfo{Calculator.curtainclub/com.digitalninja.mohammed.curtainclub.Products.UpdateDelete.Upvalence}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2957)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at com.digitalninja.mohammed.curtainclub.Products.UpdateDelete.Upvalence.onCreate(Upvalence.java:71)
at android.app.Activity.performCreate(Activity.java:7174)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2910)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
我的对话框所在的活动:
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
/** To change selected state view */
view.setSelected(true);
HashMap<String, Object> obj = (HashMap<String, Object>) ADAhere.getItem(position);
String SlectedName = (String) obj.get("NAME");
String SlectedPrice = (String) obj.get("PRICE");
String SlectedSize = (String) obj.get("SIZE");
String SlectedRange = (String) obj.get("RANGE");
String SlectedSupp = (String) obj.get("SUPPLIER");
final String SelectID = (String) obj.get("ID");
final String SlectedName1 = (String) obj.get("NAME");
final String SlectedPrice1 = (String) obj.get("PRICE");
final String SlectedSize1 = (String) obj.get("SIZE");
final String SlectedRange1 = (String) obj.get("RANGE");
final String SlectedSupp1 = (String) obj.get("SUPPLIER");
// Toast.makeText(getActivity().getApplicationContext(), SlectedName, Toast.LENGTH_SHORT).show();
final Dialog dialog = new Dialog(getActivity());
dialog.getWindow();
//dialog.setTitle("Confirm your Vote");
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.diaglog);
final TextView VName = (TextView) dialog.findViewById(R.id.Name);
final TextView VRange = (TextView) dialog.findViewById(R.id.Range);
final TextView VSUPPLIER = (TextView) dialog.findViewById(R.id.Supplier);
final TextView VSIZE = (TextView) dialog.findViewById(R.id.Size);
final TextView VPrice = (TextView) dialog.findViewById(R.id.Price);
VName.setText(SlectedName);
VRange.setText(SlectedRange);
VSUPPLIER.setText(SlectedSupp);
VSIZE.setText(SlectedSize);
VPrice.setText(SlectedPrice);
dialog.show();
Button cancelBtn = (Button) dialog.findViewById(R.id.cancel_btn);
cancelBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
dialog.dismiss();
}
});
Button UpdateBtn = (Button) dialog.findViewById(R.id.updateval);
UpdateBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(getActivity().getApplicationContext(),Upvalence.class);
Bundle extras = new Bundle();
extras.putString("ID", SelectID);
extras.putString("name",SlectedName1);
extras.putString("Range",SlectedRange1);
extras.putString("Supplier",SlectedSupp1);
extras.putString("Size",SlectedSize1);
extras.putString("Price",SlectedPrice1);
i.putExtras(extras);
startActivity(i);
}
});
Button deleteBtn = (Button) dialog.findViewById(R.id.btn_delete);
deleteBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(getActivity().getApplicationContext(),del.class);
startActivity(i);
}
});
dialog.show();
}
});
以及我调用的更新活动intent
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_upvalence);
search = (EditText) findViewById(R.id.editText2);
name1 = (EditText) findViewById(R.id.editText5);
name2 = (EditText) findViewById(R.id.editText6);
name3 = (EditText) findViewById(R.id.editText7);
name4 = (EditText) findViewById(R.id.editText8);
name5 = (EditText) findViewById(R.id.editText9);
btnsearch = (Button) findViewById(R.id.btn1);
btnUpdate = (Button) findViewById(R.id.cancel_btn);
btnDel = (Button) findViewById(R.id.button3);
Bundle extras = getIntent().getExtras();
if (extras!= null) {
String ID = extras.getString("ID");
String name = extras.getString("name");
String range = extras.getString("Range");
String supp = extras.getString("Supplier");
String size = extras.getString("Size");
String price = extras.getString("Price");
search.setText(ID);
name1.setText(name);
name2.setText(range);
name3.setText(supp);
name4.setText(size);
name5.setText(price);
}
btnsearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CheckLogin checkLogin = new CheckLogin();
checkLogin.execute("");
}
});
btnUpdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CheckLogins checkLogins = new CheckLogins();
checkLogins.execute("");
}
});
btnDel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CheckLoginsss checkLoginsss = new CheckLoginsss();
checkLoginsss.execute("");
}
});
}
解决方案
推荐阅读
- python - itertools 中的 grouper() 示例
- jquery - 在 jQuery 中,如何找到包含特定文本的单元格的行?
- python - 如果我使用 swig,我是否必须构建多个链接的 .so/.dll 与我想支持的每个 python 版本?
- python-3.x - 为什么我的矩阵完成程序在训练时,训练集上的 RMSE 会下降,而测试集上的 RMSE 会上升?
- tensorflow-lite - 模型转换时如何更改批量大小?
- python - 通过pywin32读取进程内存给出不正确的结果
- css - 为什么文本对齐会影响子 div,但不会影响字体大小?
- r - 如何将点添加到 freqpoly 图?
- python - 将文本转换为列表的程序
- javascript - 为什么这些 JavaScript 方程会输出不同(但几乎相同)的答案?