0
使用單選按鈕我試圖更改活動。無法解決ClassCastException的錯誤
這是主要的活動
public void onRadioButtonClicked(View view) {
String selection = "";
switch (view.getId()) {
case R.id.radioButton1:
Intent i = new Intent (MainActivity.this, Personal.class);
startActivity(i);
break;
case R.id.radioButton2:
Intent intent = new Intent (MainActivity.this, Home.class);
startActivity(intent);
break;
}
}
單選按鈕2工作正常,但是當我點擊單選按鈕1,我無法打開活動。 按鈕1活動包含
SQLiteDatabase db1 = null;
private static String DBNAME = "PERSONAL.db";
Button save, cancel, check ;
EditText name, price = null;
Editable d1, d2 = null;
TextView txt = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_personal);
cancel = (Button)findViewById(R.id.cancel);
cancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i = new Intent(Personal.this, MainActivity.class);
startActivity(i);
}
});
name = (EditText)findViewById(R.id.name);
price = (EditText)findViewById(R.id.cancel);
db1 = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE,null);
save = (Button)findViewById(R.id.save);
save.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
d1 = name.getText();
d2 = price.getText();
try
{
db1.execSQL("CREATE TABLE IF NOT EXISTS personal_data(ID INTEGER PRIMARY KEY ,Name VARCHAR, Price INTEGER); ");
db1.execSQL("INSERT INTO personal_data (Name,Price) VALUES ('"+d1+"','"+d2+"');");
name.setText("");
price.setText("");
Cursor c = db1.rawQuery("SELECT * FROM personal_data", null);
if(c!= null){
if (c.moveToFirst()) {
do {
String name =c.getString(c.getColumnIndex("Name"));
String price =c.getString(c.getColumnIndex("Price"));
System.out.println(name);
System.out.println(price);
}
while(c.moveToNext());
}
Integer a = c.getCount();
System.out.println(a);
}
}
catch(Exception e)
{
System.out.println(e);
}
}
});
check = (Button)findViewById(R.id.view);
check.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
txt = (TextView)findViewById(R.id.textView1);
txt.setText(d1+""+d2);
String s = (String)txt.getText();
System.out.println(s);
}
});
,這裏是我得到的錯誤。 登錄貓
02-21 11:43:21.939: E/AndroidRuntime(9468): FATAL EXCEPTION: main
02-21 11:43:21.939: E/AndroidRuntime(9468): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.my_expenses/com.example.my_expenses.Personal}: java.lang.ClassCastException: android.widget.Button
02-21 11:43:21.939: E/AndroidRuntime(9468): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
02-21 11:43:21.939: E/AndroidRuntime(9468):at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
02-21 11:43:21.939: E/AndroidRuntime(9468): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
02-21 11:43:21.939: E/AndroidRuntime(9468):at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
02-21 11:43:21.939: E/AndroidRuntime(9468): at android.os.Handler.dispatchMessage(Handler.java:99)
02-21 11:43:21.939: E/AndroidRuntime(9468): at android.os.Looper.loop(Looper.java:130)
02-21 11:43:21.939: E/AndroidRuntime(9468): at android.app.ActivityThread.main(ActivityThread.java:3687)
02-21 11:43:21.939: E/AndroidRuntime(9468): at java.lang.reflect.Method.invokeNative(Native Method)
02-21 11:43:21.939: E/AndroidRuntime(9468): at java.lang.reflect.Method.invoke(Method.java:507)
02-21 11:43:21.939: E/AndroidRuntime(9468): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
02-21 11:43:21.939: E/AndroidRuntime(9468): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
02-21 11:43:21.939: E/AndroidRuntime(9468): at dalvik.system.NativeStart.main(Native Method)
02-21 11:43:21.939: E/AndroidRuntime(9468): Caused by: java.lang.ClassCastException: android.widget.Button
02-21 11:43:21.939: E/AndroidRuntime(9468):at com.example.my_expenses.Personal.onCreate(Personal.java:46)
02-21 11:43:21.939: E/AndroidRuntime(9468):at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
02-21 11:43:21.939: E/AndroidRuntime(9468):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
我試圖清理的項目,但我得到同樣的錯誤。
我認爲你是在按鈕放置按鈕的地方 – rajshree
什麼是行數46在personal.java – InnocentKiller
錯誤在這一行price =(EditText)findViewById(R.id.cancel);取消是一個按鈕,您嘗試更改爲edittext – appukrb