需要一些关于android的帮助。我是android开发的新手,所以请多多包涵。
我有两个活动,并且能够通过按钮单击事件(意图)成功进入第二个活动,但是,一旦在第二个活动中单击一个按钮,该活动就会崩溃并返回到主要活动。 / p>
这是我的代码:
public boolean insertEmployee(String name, int pin, int roleid)
{
mydb= getWritableDatabase();
ContentValues contentvalue= new ContentValues();`enter code here`
contentvalue.put(emp_name, name);
contentvalue.put(emp_Pin,pin);
contentvalue.put(emp_roleID,roleid);
long result=mydb.insert(emp,null,contentvalue);
if(result==-1)
return false;
else
return true;
}
和我的secondactivity.java
public void insertEmployee()
{
btnemployee.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean isSuccess = dbhelp.insertEmployee(name.getText().toString(), Integer.parseInt(pin.getText().toString()), Integer.parseInt(roleid.getText().toString()));
}
}
);
}
和manifest.xml
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity2Activity"
android:label="@string/app_name" >
</activity>
似乎无法理解,但是如果我只有一个活动,则insert方法有效。 请帮忙。谢谢你们
LOgcat
06-29 16:07:29.125 15133-15133/
E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: "I REMOVED APP NAME", PID: 15133
java.lang.NullPointerException
at
.MainActivity2Activity$1.onClick(MainActivity2Activity.java:45)
at android.view.View.performClick(View.java:4438)
at android.view.View$PerformClick.run(View.java:18439)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5095)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
at dalvik.system.NativeStart.main(Native Method)
XML
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Insert Employee"
android:id="@+id/binsertEmployee"
android:layout_below="@+id/bRoleinsert"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignRight="@+id/bRoleinsert"
android:layout_alignEnd="@+id/bRoleinsert" />
mainactivity2.java
public class MainActivity2Activity extends AppCompatActivity {
DatabaseHelper dbhelp;
Button btnemployee, btnrole;
EditText role,name,pin,roleid;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_activity2);
btnrole=(Button)findViewById(R.id.bRoleinsert);
btnemployee=(Button)findViewById(R.id.binsertEmployee);
role=(EditText)findViewById(R.id.editText2);
name=(EditText)findViewById(R.id.editText3);
pin=(EditText)findViewById(R.id.editText4);
roleid=(EditText)findViewById(R.id.editText5);
InsertRole();
insertEmployee();
}
答案 0 :(得分:0)
尝试
btnemployee.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
dbhelp.insertEmployee(name.getText().toString(), Integer.parseInt(pin.getText().toString()), Integer.parseInt(roleid.getText().toString()));
}
}
);
答案 1 :(得分:0)
您的btnemployee出现NullPointerException错误,这意味着该按钮从未被初始化。您可能使用Button btnemployee
将其设置为全局变量,但实际上可能尚未将其分配给XML文件中的按钮。例如,假设XML中的按钮的ID为btnEmployee,则需要在onCreate(Bundle savedInstanceState)
方法中像这样分配它:
btnemployee = findViewById(R.id.btnEmployee)
确保为布局中的按钮分配了ID,例如:
android:id="@+id/btnEmployee"
这样,资源将以R.id.btnEmployee
的形式提供给您的代码。
尽管必须确保在onCreate方法中分配值,但不能在该变量中声明变量,否则该变量将仅在onCreate方法的范围内。相反,您必须确保在类范围内声明类型。