注册 登录
编程论坛 Android开发

大神求解救,总是进程终止,付源码

ascleft 发布于 2013-07-16 18:29, 3596 次点击
程序代码:
package com.ascleft.service;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import com.ascleft.domain.*;

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;



public class NoteDAO {
    private DBOpenHelper helper;// 创建DBOpenHelper对象
    private SQLiteDatabase db;// 创建SQLiteDatabase对象

    public NoteDAO(Context context)// 定义构造函数
    {
        helper = new DBOpenHelper(context);// 初始化DBOpenHelper对象
    }

    /**
     * 添加便签信息
     *
     * @param tb_flag
     */
    public void addnote(Note note) {
        db = helper.getWritableDatabase();// 初始化SQLiteDatabase对象
        db.execSQL("insert into note (mynotes) values (?)", new Object[] {
                note.getNotes() });// 执行添加便签信息操作
    }
//    /**
//     * 更新便签信息
//     *
//     * @param tb_flag
//     */
//    public void update(Note note) {
//        db = helper.getWritableDatabase();// 初始化SQLiteDatabase对象
//        db.execSQL("update note set flag = ? where _id = ?", new Object[] {
//                tb_flag.getFlag(), tb_flag.getid() });// 执行修改便签信息操作
//    }

    /**
     * 查找便签信息
     *
     * @param id
     * @return
     */
    public Note find(String notes ) {
        db = helper.getWritableDatabase();// 初始化SQLiteDatabase对象
        Cursor cursor = db.rawQuery(
                "select mynotes from note where mynotes = ?",
                new String[] { String.valueOf(notes) });// 根据编号查找便签信息,并存储到Cursor类中
        if (cursor.moveToNext())// 遍历查找到的便签信息
        {
            // 将遍历到的便签信息存储到Tb_flag类中
            return new Note(cursor.getString(cursor.getColumnIndex("mynotes")));
        }
        return null;// 如果没有信息,则返回null
    }
    /**
     * 获取便签信息
     *
     * @param start
     *            起始位置
     * @param count
     *            每页显示数量
     * @return
     */   
    public List<Note> getScrollData(int start, int count) {
        List<Note> listNote = new ArrayList<Note>();// 创建集合对象
        db = helper.getWritableDatabase();// 初始化SQLiteDatabase对象
        // 获取所有便签信息
        Cursor cursor = db.rawQuery("select note from mynote",new String[] { String.valueOf(start), String.valueOf(count) });
        while (cursor.moveToNext())// 遍历所有的便签信息
        {
            // 将遍历到的便签信息添加到集合中
            listNote.add(new Note(cursor.getString(cursor.getColumnIndex("note"))));
        }
        return listNote;// 返回集合
    }
    /**
     * 获取总记录数
     *
     * @return
     */
    public long getCount() {
        db = helper.getWritableDatabase();// 初始化SQLiteDatabase对象
        Cursor cursor = db.rawQuery("select count(note) from mynote", null);// 获取便签信息的记录数
        if (cursor.moveToNext())// 判断Cursor中是否有数据
        {
            return cursor.getLong(0);// 返回总记录数
        }
        return 0;// 如果没有数据,则返回0
    }
   
   
   

}<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas. android:id="@+id/iteminfo" android:orientation="vertical"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:weightSum="1">
    <LinearLayout android:id="@+id/linearLayout1"
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:orientation="vertical"
            android:layout_weight="0.06">
        <RelativeLayout
            android:layout_height="wrap_content"
            android:layout_width="match_parent">
           
            <Button android:text="返回"
                android:id="@+id/show_activity_close"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:textSize="20dp"
                android:textColor="#8C6931"
                />
            <Button android:text="刷新"
                android:id="@+id/show_activity_refresh"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:textSize="20dp"
                android:textColor="#8C6931"
            />
        </RelativeLayout>
    </LinearLayout>
    <LinearLayout android:id="@+id/linearLayout2"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:orientation="vertical"
        android:layout_weight="0.94">
        <ListView android:id="@+id/lvinfo"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scrollbarAlwaysDrawVerticalTrack="true"
            />
    </LinearLayout>
</LinearLayout>

package com.ascleft.activity;

import java.util.List;

import com.ascleft.domain.Note;
import com.ascleft.service.NoteDAO;
import com.example.ascleftnote.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
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 ShowActivity extends Activity {
   
    Button  button_show_activity_refresh,button_show_activity_close;

    public static final String FLAG = "id";// 定义一个常量,用来作为请求码
    ListView lvinfo;// 创建ListView对象

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.show_activity);
        
        lvinfo = (ListView) findViewById(R.id.lvinfo);// 获取布局文件中的ListView组件
        
        
        button_show_activity_refresh = (Button) findViewById(R.id.show_activity_refresh);
        button_show_activity_close = (Button) findViewById(R.id.show_activity_close);
        

//        ShowInfo(R.id.show_activity_refresh);// 默认显示支出信息

        button_show_activity_close.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                finish();
            }
        });
        button_show_activity_refresh.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View arg0) {
                        // TODO Auto-generated method stub
                        ShowInfo(R.id.show_activity_refresh);
                    }
                });

    }

    private void ShowInfo(int intType) {// 用来根据传入的管理类型,显示相应的信息
        String[] strInfos = null;// 定义字符串数组,用来存储收入信息
        ArrayAdapter<String> arrayAdapter = null;// 创建ArrayAdapter对象
            NoteDAO noteDAO = new NoteDAO(ShowActivity.this);// 创建FlagDAO对象
            // 获取所有便签信息,并存储到List泛型集合中
            List<Note> listNote = noteDAO.getScrollData(0,
                    (int) noteDAO.getCount());
            int n = 0;// 定义一个开始标识
            for (Note note : listNote) {// 遍历List泛型集合
                // 将便签相关信息组合成一个字符串,存储到字符串数组的相应位置
                strInfos[n] = note.getNotes();
                n++;// 标识加1
            }
        // 使用字符串数组初始化ArrayAdapter对象
        arrayAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, strInfos);
        lvinfo.setAdapter(arrayAdapter);// 为ListView列表设置数据源
        
    }

    @Override
    protected void onRestart() {
        // TODO Auto-generated method stub
        super.onRestart();// 实现基类中的方法
        ShowInfo(R.id.show_activity_refresh);// 显示支出信息
    }
}
6 回复
#2
ascleft2013-07-16 18:31
第一图是操作数据库紧接着后面是布局文件
第二图Activity
。。。。。。。。。。。。。。。。。。。。
图中activity对应的刷新按钮被点击时就会进程终止,泪目了,求解救,在线等
#3
ascleft2013-07-16 18:34
求解救
#4
ascleft2013-07-16 18:37
自己感觉是后面的
程序代码:
public List<Note> getScrollData(int start, int count) {
        List<Note> listNote = new ArrayList<Note>();// 创建集合对象
        db = helper.getWritableDatabase();// 初始化SQLiteDatabase对象
        // 获取所有便签信息
        Cursor cursor = db.rawQuery("select note from mynote",new String[] { String.valueOf(start), String.valueOf(count) });
        while (cursor.moveToNext())// 遍历所有的便签信息
        {
            // 将遍历到的便签信息添加到集合中
            listNote.add(new Note(cursor.getString(cursor.getColumnIndex("note"))));
        }
        return listNote;// 返回集合
    }
有问题,但不确定
#5
yaner0042013-08-27 21:31
好难的问题! 新利18luck 乐天堂
#6
liu1211325012013-08-29 12:24
好难得问题
#7
jianghao20142015-05-12 21:36
兄弟我只能说 我出现和你同样的问题了  你现在解决了吗? 如果解决了 帮帮我好吗?QQ987662729 加我 密码:码农
1