Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

ContentResolver (insert) bringt Programm zum Absturz

Das Thema "ContentResolver (insert) bringt Programm zum Absturz" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 25.06.2009, 12:28   #1 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 25.06.2009
Beiträge: 51
Abgegebene Danke: 0
Erhielt 5 Danke für 4 Beiträge
Unglücklich ContentResolver (insert) bringt Programm zum Absturz

Ich bin gerade dabei, mir einen Importer für .CSV-Dateien zu schreiben, die ein Outlook mal ausgespuckt hat, nachdem mein altes handy dort synchronisiert wurde.

Jetzt habe ich mir also einen Filebrowser geschrieben, der das System durchwandern kann. Auf Buttondruck soll das Ganze dann importiert werden.

Zum Testen habe ich jetzt einfach erstmal den Insert aus dem dev guide ausprobiert. Das Ganze sieht so aus
Code:
package de.docjunior.importel;

import java.io.File;

import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Contacts.People;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;

public class ImportTelefonnummern extends Activity implements
        OnItemClickListener, OnClickListener {
    private TextView tv;
    private Button   bt;
    private ListView lv;

    private String path;
    private ArrayAdapter<String> files;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.filebrowser_dialog);

        tv = (TextView) findViewById(R.id.Pfad);
        
        bt = (Button) findViewById(R.id.Submit);
        bt.setOnClickListener(this);
        
        lv = (ListView) findViewById(R.id.FileList);
        lv.setOnItemClickListener(this);

        path = getString(R.string.browser_root);
        getFileList();

    }

    /** lists all files in a directory */
    protected void getFileList() {

        /* list files in directory */
        File dirFile = new File(path);
        if (dirFile.isDirectory()) {

            String fileList[] = dirFile.list();
            for (int i = 0; i < fileList.length; i++) {
                File fp = new File(path + fileList[i]);
                if (fp.isDirectory()) {
                    fileList[i] = fileList[i] + "/";
                }
            }

            files = new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1, fileList);

            /* create a ListAdapter from filelist */
            lv.setAdapter(files);

            /* enable listview textfilter */
            lv.setTextFilterEnabled(true);

        }
    }

    public void onItemClick(AdapterView<?> l, View v, int position, long id) {

        if (l == lv) {

            String newDir = path + files.getItem(position);
            File file = new File(newDir);
            // if file is a directory
            if (file.isDirectory()) {
                path = newDir;
                this.getFileList();
            }
            // set selection as text
            tv.setText(newDir);
        } 
    }

    public void onClick (View v) {
        if (v == bt) {
            // TODO: parse the File and import to Content Provider People
            ContentValues values = new ContentValues();

            // Add Abraham Lincoln to contacts and make him a favorite.
            values.put(People.NAME, "Abraham Lincoln");
            // 1 = the new contact is ad    ded to favorites
            // 0 = the new contact is not added to favorites
            values.put(People.STARRED, 1);

            Uri uri = getContentResolver().insert(People.CONTENT_URI, values);
            
        }
    }
    
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        // return super.onKeyDown(keyCode, event);
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            
            // recreate String
            String dirlist[] = path.split("/");
            String newDir = "/";

            // put slashes to directories
            for (int i = 1; i < (dirlist.length - 1); i++) {
                newDir = newDir + dirlist[i] + "/";
            }

            // recreate list
            path = newDir;
            tv.setText(path);
            this.getFileList();
        }
        return true;
    }

}
Beim Knopfdruck stirbt das Programm ab. Aber warum?
DocJunioR ist offline   Mit Zitat antworten
Alt 25.06.2009, 12:30   #2 (permalink)
Ehrenmitglied
 
Benutzerbild von zx128

Registriert seit: 23.01.2009
Beiträge: 1.148
Abgegebene Danke: 1
Erhielt 78 Danke für 24 Beiträge
Standard AW: ContentResolver (insert) bringt Programm zum Absturz

Logs? Am besten Ausgabe von "adb logcat"
zx128 ist offline   Mit Zitat antworten
Alt 25.06.2009, 12:39   #3 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 25.06.2009
Beiträge: 51
Abgegebene Danke: 0
Erhielt 5 Danke für 4 Beiträge
Standard AW: ContentResolver (insert) bringt Programm zum Absturz

wenn du mir jetzt noch erklären könntest, wie das geht? ich hab vorgestern angefangen, mich durch die api zu graben..
DocJunioR ist offline   Mit Zitat antworten
Alt 25.06.2009, 12:46   #4 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: ContentResolver (insert) bringt Programm zum Absturz

wenn du eclipse hast, dann einfach debug starten und in die debug view wechseln, dann zeigt er dir die fehler schon etwas besser an
__________________
App Entwicklung
Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD )
swordi ist gerade online   Mit Zitat antworten
Alt 25.06.2009, 13:14   #5 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 25.06.2009
Beiträge: 51
Abgegebene Danke: 0
Erhielt 5 Danke für 4 Beiträge
Standard AW: ContentResolver (insert) bringt Programm zum Absturz

ah siehda!! ich hatt gar keine permission dafür- warum steht das nicht im dev guide drin???
DocJunioR ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht





Du liest gerade: "ContentResolver (insert) bringt Programm zum Absturz" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.