Android数据库一再显示相同的值

Android数据库一再显示相同的值,android,database,sqlite,Android,Database,Sqlite,在我的基于android数据库的应用程序中。当我从数据库检索数据时,它一次又一次地得到相同的值(插入数据库的第一个值)。有什么问题 插入数据类 public class MainActivity extends AppCompatActivity { public String dataBase_Name="database"; public static DatabaseHelper database; private TextView text; private GestureDetecto

在我的基于android数据库的应用程序中。当我从数据库检索数据时,它一次又一次地得到相同的值(插入数据库的第一个值)。有什么问题

插入数据类

public class MainActivity extends AppCompatActivity {
public String dataBase_Name="database";
public static DatabaseHelper database;
private TextView text;
private GestureDetector gestureDetector;
private  View.OnTouchListener gestureListener;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final DatabaseHelper database1=new DatabaseHelper(this,dataBase_Name);
    database=database1;
    Button add=(Button)findViewById(R.id.button);
    text=(TextView)findViewById(R.id.editText);
    add.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String temp=text.getText().toString();
            database.insert(temp);
            text.setText("");
        }
    });
    Button next=(Button) findViewById(R.id.button6);
    Button prev=(Button) findViewById(R.id.button4);
    next.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this, Delete.class);
            MainActivity.this.startActivity(intent);

        }
    });
    prev.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this, com.example.partha.app4.View.class);
            MainActivity.this.startActivity(intent);
        }
    });


}

}
检索类

public class View extends  MainActivity {
private GestureDetector gestureDetector;
private  android.view.View.OnTouchListener gestureListener;
ArrayAdapter<String> adapter;
 ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    try {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_view);
        listView = (ListView) findViewById(R.id.listView);
        String[] load = database.get_all_entry();
        String[] temp=database.get_all_entry();
        Toast.makeText(this,"Length "+temp.length,Toast.LENGTH_LONG);
        for(int i=0;i<temp.length;i++)
        {
            Toast.makeText(this,temp[i],Toast.LENGTH_SHORT);
        }
        if (load != null) {
            adapter = new ArrayAdapter<String>(this, R.layout.item,R.id.textView, database.get_all_entry());
            listView.setAdapter(adapter);
        } else {
            Toast.makeText(this, "Data cant found", Toast.LENGTH_SHORT);
        }
        Button next = (Button) findViewById(R.id.button11);
        Button prev = (Button) findViewById(R.id.button10);
        next.setOnClickListener(new android.view.View.OnClickListener() {
            @Override
            public void onClick(android.view.View v) {
                clear();
                Intent intent = new Intent(View.this, MainActivity.class);
                View.this.startActivity(intent);

            }
        });
        prev.setOnClickListener(new android.view.View.OnClickListener() {
            @Override
            public void onClick(android.view.View v) {
                clear();
                Intent intent = new Intent(View.this, Update.class);
                View.this.startActivity(intent);

            }
        });

    } catch (Exception e) {
        Log.e("view", e.toString());
    }
}
void clear()
{
    listView.setAdapter(null);
}

}
public类视图扩展了main活动{
私人手势检测器;
私有android.view.view.OnTouchListener gestureListener;
阵列适配器;
列表视图列表视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
试一试{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_视图);
listView=(listView)findViewById(R.id.listView);
String[]load=database.get_all_entry();
String[]temp=数据库。获取所有项目();
Toast.makeText(这个“长度”+温度长度,Toast.Length\u LONG);

对于(int i=0;i您在
get_all_entry()
因此,在调用
cursor.moveToFirst();

修改for循环,如下所示:

for(int i=0;i<cursor.getCount();i++){
    name[i]=(cursor.getString(cursor.getColumnIndex(CONTACTS_COLUMN_NAME)));
    cursor.moveToNext(); // <---- ADD THIS
}

用于(int i=0;iI建议使用
adb shell
,然后
sqlite/data/data//databases/
对您的数据库运行查询以检查其内容。我强烈建议您为您的类找到一个不同于
View
的名称,因为Android API使用此名称。此外,您为什么要扩展
MainActivity
类?在声明主键时定义自动增量
for(int i=0;i<cursor.getCount();i++){
    name[i]=(cursor.getString(cursor.getColumnIndex(CONTACTS_COLUMN_NAME)));
    cursor.moveToNext(); // <---- ADD THIS
}