Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android实例化错误,即无法实例化活动_Android_Android Sqlite - Fatal编程技术网

Android实例化错误,即无法实例化活动

Android实例化错误,即无法实例化活动,android,android-sqlite,Android,Android Sqlite,我试图将解析后的数据保存到数据库中,但有一个实例化异常。我正在使用Parcelable将解析后的arraylist从一个活动传递到另一个活动。我需要将这些arraylist从一个活动传递到另一个活动,并将其存储在sqlite中 public class AndroidXMLParsingActivity extends ListActivity implements Parcelable{ //private ScheduleClient scheduleClient; public Calen

我试图将解析后的数据保存到数据库中,但有一个实例化异常。我正在使用Parcelable将解析后的arraylist从一个活动传递到另一个活动。我需要将这些arraylist从一个活动传递到另一个活动,并将其存储在sqlite中

public class AndroidXMLParsingActivity extends ListActivity implements Parcelable{
//private ScheduleClient scheduleClient;
public Calendar cal;
//TextView desciption1;
TextView name1;
    private GetData mGetData;
// All static variables
static final String URL = "http address";
// XML node keys
static final String KEY_ITEM = "group_header"; // parent node
static String KEY_NAME = "name";
static  String KEY_ID = "group_day";
static  String KEY_COST = "day_sun_mrg";
static String KEY_DESC = "day_sun_evn";
static final String KEY_COST1 = "day_mon_mrg";
static final String KEY_DESC1 = "day_mon_evn";
static final String KEY_COST2 = "day_tue_mrg";
static final String KEY_DESC2 = "day_tue_evn";
static final String KEY_COST3 = "day_wed_mrg";
static final String KEY_DESC3 = "day_wed_evn";
static final String KEY_COST4 = "day_thu_mrg";
static final String KEY_DESC4 = "day_thu_evn";
static final String KEY_COST5 = "day_fri_mrg";
static final String KEY_DESC5 = "day_fri_evn";
static final String KEY_COST6 = "day_sat_mrg";
static final String KEY_DESC6 = "day_sat_evn";

ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();

// creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);



    XMLParser parser = new XMLParser();
    String xml = parser.getXmlFromUrl(URL); // getting XML
    Document doc = parser.getDomElement(xml); // getting DOM element

    NodeList nl = doc.getElementsByTagName(KEY_ITEM);
    // looping through all item nodes <item>
    for (int i = 0; i < nl.getLength(); i++) {

        Element e = (Element) nl.item(i);
        // adding each child node to HashMap key => value
        map.put(KEY_ID, parser.getValue(e,   KEY_ID));
        map.put(KEY_NAME, parser.getValue(e, KEY_NAME));
        map.put(KEY_COST,parser.getValue(e,  KEY_COST));
        map.put(KEY_DESC, parser.getValue(e, KEY_DESC));
        map.put(KEY_COST1,parser.getValue(e, KEY_COST1));
        map.put(KEY_DESC1, parser.getValue(e,KEY_DESC1));
        map.put(KEY_COST2,parser.getValue(e, KEY_COST2));
        map.put(KEY_DESC2, parser.getValue(e,KEY_DESC2));
        map.put(KEY_COST3,parser.getValue(e, KEY_COST3));
        map.put(KEY_DESC3, parser.getValue(e,KEY_DESC3));
        map.put(KEY_COST4,parser.getValue(e, KEY_COST4));
        map.put(KEY_DESC4, parser.getValue(e,KEY_DESC4));
        map.put(KEY_COST5,parser.getValue(e, KEY_COST5));
        map.put(KEY_DESC5, parser.getValue(e,KEY_DESC5));
        map.put(KEY_COST6,parser.getValue(e, KEY_COST6));
        map.put(KEY_DESC6, parser.getValue(e,KEY_DESC6));

        // adding HashList to ArrayList
        menuItems.add(map);

        //Passing Data to Store Page
        mGetData.addLoad(menuItems);
        //putStringArrayListExtra(menuItems, ArrayList<String> menuItems);



}
    // Adding menuItems to ListView
    ListAdapter adapter = new SimpleAdapter(this, menuItems,
            R.layout.list_item,
            new String[] { KEY_NAME, KEY_DESC, KEY_COST }, new int[] {
            R.id.name, R.id.desciption, R.id.cost});

    setListAdapter(adapter);

    // selecting single ListView item
    ListView lv = getListView();

    lv.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            // getting values from selected ListItem
            String name = ((TextView) view.findViewById(R.id.name)).getText().toString();
            String cost = ((TextView) view.findViewById(R.id.cost)).getText().toString();
            String description = ((TextView) view.findViewById(R.id.desciption)).getText().toString();

            // Starting new intent
            Intent in = new Intent(getApplicationContext(), SingleMenuItemActivity.class);
            in.putExtra(KEY_NAME, name);
            in.putExtra(KEY_COST, cost);
            in.putExtra(KEY_DESC, description);

            startActivity(in);


        }

    });
}

public int describeContents() {
    // TODO Auto-generated method stub
    return 0;
}

public void writeToParcel(Parcel dest, int flags) {
    // TODO Auto-generated method stub
    dest.writeString(KEY_NAME);
    dest.writeString(KEY_COST);
    dest.writeString(KEY_DESC);
}

public AndroidXMLParsingActivity(Parcel source){
    KEY_NAME=source.readString();
    KEY_COST=source.readString();
    KEY_DESC=source.readString();
    source.readArrayList(getClassLoader());
}

我认为您尚未在AndroidManifest.xml中注册您的活动

请在AndroidManifest.xml中注册您的活动


无论何时创建新活动,都必须在AndroidManifest.xml中注册该活动。

您正在为AndroidXMLParsingActivity创建自己的构造函数


我认为你不应该重写构造函数。也不要让你的活动可序列化。创建一个自定义的可序列化类,该类包含包含要传递的数据的字段。然后通过这门课,而不是你的活动

我想这可能会帮助一些新手解决问题,所以我发布了我的答案。在这里,我解析了该值,并使用AsyncTask直接从同一个函数将其传递给sqlite。代码如下:

public class LoadScheduleAsyncTask extends AsyncTask<String, String, String> {

DBAdapter dba;

Boolean isInternetPresent = false;

// Connection Detector Class
ConnectionDetector cd;

private ProgressDialog pDialog;

// Alert Dialog Manager
AlertDialogManager alert = new AlertDialogManager();

// XML Parsing URL
static final String URL = "url address";

// XML node keys
static final String KEY_ITEM = "group_header"; // Parent Node
static final String KEY_ROWID = "_id";
static final String KEY_NAME = "name";
static final String KEY_SUNM = "day_sun_mrg";
static final String KEY_SUNE = "day_sun_evn";
static final String KEY_MONM = "day_mon_mrg";
static final String KEY_MONE = "day_mon_evn";
static final String KEY_TUEM = "day_tue_mrg";
static final String KEY_TUEE = "day_tue_evn";
static final String KEY_WEDM = "day_wed_mrg";
static final String KEY_WEDE = "day_wed_evn";
static final String KEY_THUM = "day_thu_mrg";
static final String KEY_THUE = "day_thu_evn";
static final String KEY_FRIM = "day_fri_mrg";
static final String KEY_FRIE = "day_fri_evn";
static final String KEY_SATM = "day_sat_mrg";
static final String KEY_SATE = "day_sat_evn";

public static ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();

// Creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();
Context context;

public LoadScheduleAsyncTask(Context ctxt){
    dba=new DBAdapter(ctxt);
    context=ctxt;
}

/**
 * Before starting background thread Show Progress Dialog
 **/
@SuppressLint("NewApi")
@Override
protected void onPreExecute() {
    super.onPreExecute();
    pDialog = new ProgressDialog(context);
    pDialog.setMessage("Updating Data ...");
    pDialog.setIndeterminate(false);
    pDialog.setCancelable(false);
    pDialog.show();
}

/**
 * getting Schedule XML
 **/
protected String doInBackground(String... args) {
    XMLParser parser = new XMLParser();
    String xml = parser.getXmlFromUrl(URL); // getting XML
    Document doc = parser.getDomElement(xml); // getting DOM element
    NodeList nl = doc.getElementsByTagName(KEY_ITEM);
    // looping through all item nodes <item>
    for (int i = 0; i < nl.getLength(); i++) {
        Element e = (Element) nl.item(i);
        // adding each child node to HashMap key => value
        map.put(KEY_NAME, parser.getValue(e, KEY_NAME));
        map.put(KEY_SUNM, parser.getValue(e, KEY_SUNM));
        map.put(KEY_SUNE, parser.getValue(e, KEY_SUNE));
        map.put(KEY_MONM, parser.getValue(e, KEY_MONM));
        map.put(KEY_MONE, parser.getValue(e, KEY_MONE));
        map.put(KEY_TUEM, parser.getValue(e, KEY_TUEM));
        map.put(KEY_TUEE, parser.getValue(e, KEY_TUEE));
        map.put(KEY_WEDM, parser.getValue(e, KEY_WEDM));
        map.put(KEY_WEDE, parser.getValue(e, KEY_WEDE));
        map.put(KEY_THUM, parser.getValue(e, KEY_THUM));
        map.put(KEY_THUE, parser.getValue(e, KEY_THUE));
        map.put(KEY_FRIM, parser.getValue(e, KEY_FRIM));
        map.put(KEY_FRIE, parser.getValue(e, KEY_FRIE));
        map.put(KEY_SATM, parser.getValue(e, KEY_SATM));
        map.put(KEY_SATE, parser.getValue(e, KEY_SATE));
        // adding HashList to ArrayList
        menuItems.add(map);

        /**
         * Updating parsed JSON data into ListView
         **/
        String group_id = map.get(KEY_NAME);
        String sunm = map.get(KEY_SUNM);
        String sune = map.get(KEY_SUNE);
        String monm = map.get(KEY_MONM);
        String mone = map.get(KEY_MONE);
        String tuem = map.get(KEY_TUEM);
        String tuee = map.get(KEY_TUEE);
        String wedm = map.get(KEY_WEDM);
        String wede = map.get(KEY_WEDE);
        String thum = map.get(KEY_THUM);
        String thue = map.get(KEY_THUE);
        String frim = map.get(KEY_FRIM);
        String frie = map.get(KEY_FRIE);
        String satm = map.get(KEY_SATM);
        String sate = map.get(KEY_SATE);

        try {
            dba.open();
        } catch (SQLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        dba.insertData(group_id, sunm, sune, monm, mone, tuem, tuee, wedm,
                wede, thum, thue, frim, frie, satm, sate);
        dba.close();
    }
    return null;
}

/**
 * After completing background task Dismiss the progress dialog
 **/
protected void onPostExecute(String file_url) {
    // dismiss the dialog after getting all schedules
    pDialog.dismiss();

}
}

此答案基于与我的问题不同的方法。

请参见您的“创建加载”表,您可能需要注意空格。例如,在KEY_SUN之后,您应该放置STRING,而不是STRING,请查看空格。好的,没有错误,我的意思是原始代码中没有空格。谢谢你的建议anyway@Aprian在CREATE_LOADS_表中正确地告诉您需要字符串周围的空间。顺便说一句,这不可能是你生活中唯一的错误code@guido啊,好的,我知道还有其他错误,我没有找到,这就是为什么我张贴it@Aprian我已经这样做了,但即使是同样的错误仍然存在,请你提供一些链接或代码或教程给我做这件事。这对于我创建另一个类来说是一个头疼的问题。您可以引用任何可序列化的类。
09-18 13:11:03.362: E/AndroidRuntime(471): FATAL EXCEPTION: main
09-18 13:11:03.362: E/AndroidRuntime(471): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mokshya.multinodeparse/com.mokshya.multinodeparse.parse.AndroidXMLParsingActivity}: java.lang.InstantiationException: 
09-18 13:11:03.362: E/AndroidRuntime(471):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
09-18 13:11:03.362: E/AndroidRuntime(471):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
09-18 13:11:03.362: E/AndroidRuntime(471):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
09-18 13:11:03.362: E/AndroidRuntime(471):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
09-18 13:11:03.362: E/AndroidRuntime(471):  at android.os.Handler.dispatchMessage(Handler.java:99)
09-18 13:11:03.362: E/AndroidRuntime(471):  at android.os.Looper.loop(Looper.java:123)
09-18 13:11:03.362: E/AndroidRuntime(471):  at android.app.ActivityThread.main(ActivityThread.java:4627)
09-18 13:11:03.362: E/AndroidRuntime(471):  at java.lang.reflect.Method.invokeNative(Native Method)
09-18 13:11:03.362: E/AndroidRuntime(471):  at java.lang.reflect.Method.invoke(Method.java:521)
09-18 13:11:03.362: E/AndroidRuntime(471):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
09-18 13:11:03.362: E/AndroidRuntime(471):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
09-18 13:11:03.362: E/AndroidRuntime(471):  at dalvik.system.NativeStart.main(Native Method)
09-18 13:11:03.362: E/AndroidRuntime(471): Caused by: java.lang.InstantiationException: com.mokshya.multinodeparse.parse.AndroidXMLParsingActivity
09-18 13:11:03.362: E/AndroidRuntime(471):  at java.lang.Class.newInstanceImpl(Native Method)
 09-18 13:11:03.362: E/AndroidRuntime(471):     at java.lang.Class.newInstance(Class.java:1429)
09-18 13:11:03.362: E/AndroidRuntime(471):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
09-18 13:11:03.362: E/AndroidRuntime(471):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
09-18 13:11:03.362: E/AndroidRuntime(471):  ... 11 more
com.mokshya.multinodeparse.parse.AndroidXMLParsingActivity
public class LoadScheduleAsyncTask extends AsyncTask<String, String, String> {

DBAdapter dba;

Boolean isInternetPresent = false;

// Connection Detector Class
ConnectionDetector cd;

private ProgressDialog pDialog;

// Alert Dialog Manager
AlertDialogManager alert = new AlertDialogManager();

// XML Parsing URL
static final String URL = "url address";

// XML node keys
static final String KEY_ITEM = "group_header"; // Parent Node
static final String KEY_ROWID = "_id";
static final String KEY_NAME = "name";
static final String KEY_SUNM = "day_sun_mrg";
static final String KEY_SUNE = "day_sun_evn";
static final String KEY_MONM = "day_mon_mrg";
static final String KEY_MONE = "day_mon_evn";
static final String KEY_TUEM = "day_tue_mrg";
static final String KEY_TUEE = "day_tue_evn";
static final String KEY_WEDM = "day_wed_mrg";
static final String KEY_WEDE = "day_wed_evn";
static final String KEY_THUM = "day_thu_mrg";
static final String KEY_THUE = "day_thu_evn";
static final String KEY_FRIM = "day_fri_mrg";
static final String KEY_FRIE = "day_fri_evn";
static final String KEY_SATM = "day_sat_mrg";
static final String KEY_SATE = "day_sat_evn";

public static ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();

// Creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();
Context context;

public LoadScheduleAsyncTask(Context ctxt){
    dba=new DBAdapter(ctxt);
    context=ctxt;
}

/**
 * Before starting background thread Show Progress Dialog
 **/
@SuppressLint("NewApi")
@Override
protected void onPreExecute() {
    super.onPreExecute();
    pDialog = new ProgressDialog(context);
    pDialog.setMessage("Updating Data ...");
    pDialog.setIndeterminate(false);
    pDialog.setCancelable(false);
    pDialog.show();
}

/**
 * getting Schedule XML
 **/
protected String doInBackground(String... args) {
    XMLParser parser = new XMLParser();
    String xml = parser.getXmlFromUrl(URL); // getting XML
    Document doc = parser.getDomElement(xml); // getting DOM element
    NodeList nl = doc.getElementsByTagName(KEY_ITEM);
    // looping through all item nodes <item>
    for (int i = 0; i < nl.getLength(); i++) {
        Element e = (Element) nl.item(i);
        // adding each child node to HashMap key => value
        map.put(KEY_NAME, parser.getValue(e, KEY_NAME));
        map.put(KEY_SUNM, parser.getValue(e, KEY_SUNM));
        map.put(KEY_SUNE, parser.getValue(e, KEY_SUNE));
        map.put(KEY_MONM, parser.getValue(e, KEY_MONM));
        map.put(KEY_MONE, parser.getValue(e, KEY_MONE));
        map.put(KEY_TUEM, parser.getValue(e, KEY_TUEM));
        map.put(KEY_TUEE, parser.getValue(e, KEY_TUEE));
        map.put(KEY_WEDM, parser.getValue(e, KEY_WEDM));
        map.put(KEY_WEDE, parser.getValue(e, KEY_WEDE));
        map.put(KEY_THUM, parser.getValue(e, KEY_THUM));
        map.put(KEY_THUE, parser.getValue(e, KEY_THUE));
        map.put(KEY_FRIM, parser.getValue(e, KEY_FRIM));
        map.put(KEY_FRIE, parser.getValue(e, KEY_FRIE));
        map.put(KEY_SATM, parser.getValue(e, KEY_SATM));
        map.put(KEY_SATE, parser.getValue(e, KEY_SATE));
        // adding HashList to ArrayList
        menuItems.add(map);

        /**
         * Updating parsed JSON data into ListView
         **/
        String group_id = map.get(KEY_NAME);
        String sunm = map.get(KEY_SUNM);
        String sune = map.get(KEY_SUNE);
        String monm = map.get(KEY_MONM);
        String mone = map.get(KEY_MONE);
        String tuem = map.get(KEY_TUEM);
        String tuee = map.get(KEY_TUEE);
        String wedm = map.get(KEY_WEDM);
        String wede = map.get(KEY_WEDE);
        String thum = map.get(KEY_THUM);
        String thue = map.get(KEY_THUE);
        String frim = map.get(KEY_FRIM);
        String frie = map.get(KEY_FRIE);
        String satm = map.get(KEY_SATM);
        String sate = map.get(KEY_SATE);

        try {
            dba.open();
        } catch (SQLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        dba.insertData(group_id, sunm, sune, monm, mone, tuem, tuee, wedm,
                wede, thum, thue, frim, frie, satm, sate);
        dba.close();
    }
    return null;
}

/**
 * After completing background task Dismiss the progress dialog
 **/
protected void onPostExecute(String file_url) {
    // dismiss the dialog after getting all schedules
    pDialog.dismiss();

}
}