Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.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
Java 使用从数据库提取的数据填充Android Listview_Java_Android - Fatal编程技术网

Java 使用从数据库提取的数据填充Android Listview

Java 使用从数据库提取的数据填充Android Listview,java,android,Java,Android,我是Android编程的新手。我想使用输入到SQLite数据库的数据来填充Android Listview。然而,Android一直将下面的SimpleCursorAdapter作为错误突出显示。有人能帮忙吗 dataAdapter=新的SimpleCorsorAdapter( 这个,R.layout.secondview, 光标, 柱, 到 0); 以下是完整代码: package com.allmycode.databaseinsertwithlistview; import andro

我是Android编程的新手。我想使用输入到SQLite数据库的数据来填充Android Listview。然而,Android一直将下面的SimpleCursorAdapter作为错误突出显示。有人能帮忙吗

dataAdapter=新的SimpleCorsorAdapter( 这个,R.layout.secondview, 光标, 柱, 到 0);

以下是完整代码:

package com.allmycode.databaseinsertwithlistview;


import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

    EditText GetName,GetPhoneNumber,GetSubject ;
    Button Submit ;
    String Name, PhoneNumber, Subject ;
    Boolean CheckEditTextEmpty ;
    String SQLiteQuery;
    SQLiteDatabase SQLITEDATABASE;
    TextView display;
    Cursor cursor;
    ListView listView;
    //Make these declarations to enable the fetchallitems() method work
    public static final String name = "name";
    public static final String phone_number = "Phone_number";
    public static final String subject = "subject";
    private SimpleCursorAdapter dataAdapter;
    private static final String demoTable = "demoTable";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);GetName = (EditText)findViewById(R.id.editText1);

        GetPhoneNumber = (EditText)findViewById(R.id.editText2);

        GetSubject = (EditText)findViewById(R.id.editText3);
         listView = (ListView) findViewById(R.id.ListVw);
        //display= (TextView) findViewById(R.id.textView) ;

        Submit = (Button)findViewById(R.id.button1);



        Submit.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                DBCreate();

                SubmitData2SQLiteDB();
                displayListView();


            }
        });

    }

    public void DBCreate(){

        SQLITEDATABASE = openOrCreateDatabase("DemoDataBase", Context.MODE_PRIVATE, null);

        SQLITEDATABASE.execSQL("CREATE TABLE IF NOT EXISTS demoTable(id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, name String, phone_number String, subject String);");
    }

    public void SubmitData2SQLiteDB(){

        Name = GetName.getText().toString();

        PhoneNumber = GetPhoneNumber.getText().toString();

        Subject = GetSubject.getText().toString();

        CheckEditTextIsEmptyOrNot( Name,PhoneNumber, Subject);

        if(CheckEditTextEmpty == true)
        {

            SQLiteQuery = "INSERT INTO demoTable (name,phone_number,subject) VALUES('"+Name+"', '"+PhoneNumber+"', '"+Subject+"');";

            SQLITEDATABASE.execSQL(SQLiteQuery);

            Toast.makeText(MainActivity.this,"Data Submit Successfully", Toast.LENGTH_LONG).show();

            ClearEditTextAfterDoneTask();
           // addtoTextView();
        }
        else {

            Toast.makeText(MainActivity.this,"Please Fill All the Fields", Toast.LENGTH_LONG).show();
        }
    }

    public void CheckEditTextIsEmptyOrNot(String Name,String PhoneNumber, String subject ){

        if(TextUtils.isEmpty(Name) || TextUtils.isEmpty(PhoneNumber) || TextUtils.isEmpty(Subject)){

            CheckEditTextEmpty = false ;

        }
        else {
            CheckEditTextEmpty = true ;
        }
    }

    public void ClearEditTextAfterDoneTask(){

        GetName.getText().clear();
        GetPhoneNumber.getText().clear();
        GetSubject.getText().clear();

    }
    /* void addtoTextView(){
         cursor= SQLITEDATABASE.rawQuery("SELECT * FROM demoTable;",null);

         if (cursor !=null && cursor.moveToFirst()){
             String name;
             do{
                     name = cursor.getString(0);
                     String pnone_number=cursor.getString(1);
                     String test2=cursor.getString(2);
                     String test3 = cursor.getString(3);
                     display.append(name + " " + pnone_number +" "+test2 +" "+ test3 +"\n");
         } while (cursor.moveToNext());
         }
         display.append("-------------\n");


         } */
    public Cursor fetchAllItems() {

        Cursor mCursor = SQLITEDATABASE.query(this.demoTable, new String[] {this.name,
                        this.phone_number, this.subject},
                null, null, null, null, null);

        if (mCursor != null) {
            mCursor.moveToFirst();
        }
        return mCursor;
    }

    private void       displayListView()
    {
        Cursor cursor= fetchAllItems();
        //The desired columns to be bound
        String[] columns=new String[]{
                this.name,
                this.phone_number,
                this.subject
        };
        //The XML defined views which the data will be bound to
        int[] to = new int[] {
                R.id.name,
                R.id.phone_number,
                R.id.subject,

        };
        // create the adapter using the cursor pointing to the desired data
        //as well as the layout information
        dataAdapter = new SimpleCursorAdapter(
                this, R.layout.secondview,
                cursor,
                columns,
                to,
                0);

        // Assign adapter to ListView
        listView.setAdapter(dataAdapter);



    }


}

显示的错误是什么??有消息吗?以及您的
SimpleCursorAdapter
是什么样子的?当我运行时,数据库中的数据不会出现在列表视图中。logcat表明simplecursors有问题,但我无法解决。我的意思是这是ur
SimpleCursorAdapter
的代码?你能把它也贴在这里吗??原因问题是由
SimpleCursorAdapter
引起的,如果你没有发布这个类的代码,那么我们不知道问题所在,因此不知道如何帮助你SimpleCursorAdapter是一个Android API,我将它导入到我的代码中。你可以在进口申报单上看到