Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.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 当我编写代码通过类似于contact view的ListView{in content_main.xml}创建一个显示列表时,出现了一个错误_Java_Android_Sqlite_Listview_Compiler Errors - Fatal编程技术网

Java 当我编写代码通过类似于contact view的ListView{in content_main.xml}创建一个显示列表时,出现了一个错误

Java 当我编写代码通过类似于contact view的ListView{in content_main.xml}创建一个显示列表时,出现了一个错误,java,android,sqlite,listview,compiler-errors,Java,Android,Sqlite,Listview,Compiler Errors,我正在编写一个代码,通过类似于联系人视图的ListView{incontent\u main.xml}创建一个显示列表。 我在(SQLite Expert Professional)中构建了一个数据库,其中有一个表(名称:“contact”),其中包含一些姓名、家庭和号码,以及ID、姓名、家庭和电话号码列。 ID是唯一的,自动递增的,主键…其他的是文本,除了数字是字符。 然后我将它们调用到我的ListView,如您在下面看到的。(在此之前,我做了一个row\u list活动来创建我的ListVi

我正在编写一个代码,通过类似于联系人视图的ListView{in
content\u main.xml
}创建一个显示列表。 我在(SQLite Expert Professional)中构建了一个数据库,其中有一个表(名称:“contact”),其中包含一些姓名、家庭和号码,以及ID、姓名、家庭和电话号码列。 ID是唯一的,自动递增的,主键…其他的是文本,除了数字是字符。 然后我将它们调用到我的ListView,如您在下面看到的。(在此之前,我做了一个row\u list活动来创建我的ListView,custom),但出现了一个错误,我找不到它。 {我可以在源数据文件中找到带有该表的database.db文件,这意味着我的错误不是因为创建了数据库。} 请帮帮我。我想学安卓(尽可能快)来找份工作,我需要它

错误。Android监视器。Logcat

Main.java

package mizco.phonebook;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class Main extends AppCompatActivity {
    private database db;
    private String [][] res ;

    private ListView list;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    list = (ListView) findViewById(R.id.main_list);

    db = new database(this);
    db.startusing();

    db.open();
    res = db.getfulllist();
    db.close();


    list.setAdapter(new AA());


    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
        }
    });

}


class AA extends ArrayAdapter<String>{

    public AA() {

        super(Main.this, R.layout.row_list, res[0]);
    }
    @NonNull
    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {

        LayoutInflater in = getLayoutInflater();
        View row = in.inflate(R.layout.row_list,parent,false);

        TextView name = (TextView) row.findViewById(R.id.row_name);
        TextView number = (TextView) row.findViewById(R.id.row_number);

        name.setText(res[0][position]+" "+res[1][position]);
        number.setText(res[2][position]);
        return row;
    }
}

}
package mizco.phonebook;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

/**
 * Created by Mahdi on 9/2/2017.
 */

public class database extends SQLiteOpenHelper {

public static String dbname= "database";
public static String dbpath="";
private Context mctxt;

private SQLiteDatabase mydb;


public database(Context context) {
    super(context, dbname, null, 1);
    mctxt = context;
}

@Override
public void onCreate(SQLiteDatabase db) {

}

@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1) {

}

private boolean existdatabase(){
    File m312 = new File(dbpath+dbname);

        return m312.exists();
}


private void copydatabase(){
    try {
        InputStream IS = mctxt.getAssets().open(dbname);
        OutputStream OS = new FileOutputStream(dbpath+dbname);


        byte[] buffer = new byte[1024];
        int length;

        while ((length = IS.read(buffer))>0){
         OS.write(buffer,0,length);
        }
        OS.flush();
        OS.close();
        IS.close();

    } catch (Exception e) {
    }
}

public void open(){
    mydb = SQLiteDatabase.openDatabase(dbpath+dbname, null, SQLiteDatabase.OPEN_READWRITE);
}

public void close(){
    mydb.close();
}




public void startusing () {
    dbpath = mctxt.getFilesDir().getParent() + "/databases/";
    if (!existdatabase()) {
        this.getWritableDatabase();
        copydatabase();
    }
}

public String[][] getfulllist(){


    Cursor cu = mydb.rawQuery("select * from Contact",null);

    String [][] r = new String[3][cu.getCount()];
    for (int i= 0;i<=cu.getCount();i++){
        cu.moveToPosition(i);

        r[0][i]=cu.getString(1);
        r[1][i]=cu.getString(2);
        r[2][i]=cu.getString(3);
    }

    return r;
}

}
package mizco.phonebook;
导入android.os.Bundle;
导入android.support.annotation.NonNull;
导入android.support.design.widget.FloatingActionButton;
导入android.support.v7.app.AppActivity;
导入android.support.v7.widget.Toolbar;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.TextView;
公共类Main扩展了AppCompative活动{
专用数据库数据库;
私有字符串[][]res;
私有列表视图列表;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
列表=(ListView)findViewById(R.id.main_列表);
db=新数据库(此数据库);
db.startusing();
db.open();
res=db.getfulllist();
db.close();
setAdapter(新的AA());
FloatingActionButton fab=(FloatingActionButton)findViewById(R.id.fab);
fab.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
}
});
}
AA类扩展阵列适配器{
公共机管局(){
super(Main.this,R.layout.row_list,res[0]);
}
@非空
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
LayoutInflater in=getLayoutInflater();
查看行=in.充气(R.布局.行列表,父项,false);
TextView name=(TextView)row.findViewById(R.id.row\u name);
TextView编号=(TextView)row.findViewById(R.id.row\u编号);
name.setText(res[0][position]+“”+res[1][position]);
编号.setText(res[2][position]);
返回行;
}
}
}
类:database.java

package mizco.phonebook;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class Main extends AppCompatActivity {
    private database db;
    private String [][] res ;

    private ListView list;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    list = (ListView) findViewById(R.id.main_list);

    db = new database(this);
    db.startusing();

    db.open();
    res = db.getfulllist();
    db.close();


    list.setAdapter(new AA());


    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
        }
    });

}


class AA extends ArrayAdapter<String>{

    public AA() {

        super(Main.this, R.layout.row_list, res[0]);
    }
    @NonNull
    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {

        LayoutInflater in = getLayoutInflater();
        View row = in.inflate(R.layout.row_list,parent,false);

        TextView name = (TextView) row.findViewById(R.id.row_name);
        TextView number = (TextView) row.findViewById(R.id.row_number);

        name.setText(res[0][position]+" "+res[1][position]);
        number.setText(res[2][position]);
        return row;
    }
}

}
package mizco.phonebook;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

/**
 * Created by Mahdi on 9/2/2017.
 */

public class database extends SQLiteOpenHelper {

public static String dbname= "database";
public static String dbpath="";
private Context mctxt;

private SQLiteDatabase mydb;


public database(Context context) {
    super(context, dbname, null, 1);
    mctxt = context;
}

@Override
public void onCreate(SQLiteDatabase db) {

}

@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1) {

}

private boolean existdatabase(){
    File m312 = new File(dbpath+dbname);

        return m312.exists();
}


private void copydatabase(){
    try {
        InputStream IS = mctxt.getAssets().open(dbname);
        OutputStream OS = new FileOutputStream(dbpath+dbname);


        byte[] buffer = new byte[1024];
        int length;

        while ((length = IS.read(buffer))>0){
         OS.write(buffer,0,length);
        }
        OS.flush();
        OS.close();
        IS.close();

    } catch (Exception e) {
    }
}

public void open(){
    mydb = SQLiteDatabase.openDatabase(dbpath+dbname, null, SQLiteDatabase.OPEN_READWRITE);
}

public void close(){
    mydb.close();
}




public void startusing () {
    dbpath = mctxt.getFilesDir().getParent() + "/databases/";
    if (!existdatabase()) {
        this.getWritableDatabase();
        copydatabase();
    }
}

public String[][] getfulllist(){


    Cursor cu = mydb.rawQuery("select * from Contact",null);

    String [][] r = new String[3][cu.getCount()];
    for (int i= 0;i<=cu.getCount();i++){
        cu.moveToPosition(i);

        r[0][i]=cu.getString(1);
        r[1][i]=cu.getString(2);
        r[2][i]=cu.getString(3);
    }

    return r;
}

}
package mizco.phonebook;
导入android.content.Context;
导入android.database.Cursor;
导入android.database.sqlite.SQLiteDatabase;
导入android.database.sqlite.SQLiteOpenHelper;
导入java.io.File;
导入java.io.FileOutputStream;
导入java.io.InputStream;
导入java.io.OutputStream;
/**
*由Mahdi于2017年9月2日创建。
*/
公共类数据库扩展了SQLiteOpenHelper{
公共静态字符串dbname=“数据库”;
公共静态字符串dbpath=“”;
私有上下文mctxt;
私有数据库mydb;
公共数据库(上下文){
super(context,dbname,null,1);
mctxt=上下文;
}
@凌驾
public void onCreate(SQLiteDatabase db){
}
@凌驾
public void onUpgrade(SQLiteDatabase db,inti,inti1){
}
私有布尔existdatabase(){
文件m312=新文件(dbpath+dbname);
返回m312.exists();
}
私有void copydatabase(){
试一试{
InputStream=mctxt.getAssets().open(dbname);
OutputStream OS=新文件OutputStream(dbpath+dbname);
字节[]缓冲区=新字节[1024];
整数长度;
而((长度=IS.read(缓冲区))>0){
写操作(缓冲区,0,长度);
}
OS.flush();
OS.close();
IS.close();
}捕获(例外e){
}
}
公开作废{
mydb=SQLiteDatabase.openDatabase(dbpath+dbname,null,SQLiteDatabase.OPEN\u READWRITE);
}
公众假期结束(){
mydb.close();
}
公共无效启动(){
dbpath=mctxt.getFilesDir().getParent()+“/databases/”;
如果(!existdatabase()){
这是.getWritableDatabase();
copydatabase();
}
}
公共字符串[][]getfulllist(){
游标cu=mydb.rawQuery(“选择*来自联系人”,null);
字符串[][]r=新字符串[3][cu.getCount()];

对于(inti=0;i,您正在从光标的末尾走出来。您的代码应该是

for (int i= 0;i < cu.getCount();i++){
        cu.moveToPosition(i);

        r[0][i]=cu.getString(1);
        r[1][i]=cu.getString(2);
        r[2][i]=cu.getString(3);
    }
return r;
for(int i=0;i