在listview中看不到db中的数据

时间:2012-07-19 12:33:36

标签: android sqlite listview

我试图在列表视图中动态显示我的数据。我先将数据插入db,然后在listview中显示它们。我不明白为什么,但我创建了db和listview,当我尝试显示它时,它不显示数据。

我从EditText字段获取数据,但我在另一个activity中插入并显示数据。我首先想到我从第一次活动中得不到数据,但我确信我写的是正确的代码。

listview中数据的字段始终为空。当我按下“添加”按钮时,我应该创建一个新条目。我可以看到它在列表中创建了一个新行,但是其余的是空的。

为什么我看不到数据?这就是我获取数据并放入db和list的方法:

   public void onCreate(Bundle savedInstanceState) {

   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main2);

   String name = "";
   String email = ""; 
   String phone = "";
   String address = "";

   Bundle extras = getIntent().getExtras();
   if (extras != null) {
        name = extras.getString("name");
        email = extras.getString("email");
        phone = extras.getString("phone");
        address = extras.getString("address");
   }


   listContent = (ListView)findViewById(R.id.contentlist);

   mySQLiteAdapter = new SQLiteAdapter(this);
   mySQLiteAdapter.openToWrite();

   cursor = mySQLiteAdapter.queueAll();

   String[] from = new String[]{SQLiteAdapter.KEY_ID, SQLiteAdapter.COLUMN_NAME, SQLiteAdapter.COLUMN_EMAIL,SQLiteAdapter.COLUMN_PHONE, SQLiteAdapter.COLUMN_ADDRESS};

   int[] to = new int[]{R.id.id, R.id.text1, R.id.text2,R.id.text3, R.id.text4};

   cursorAdapter = new SimpleCursorAdapter(this, R.layout.row, cursor, from, to);

   listContent.setAdapter(cursorAdapter);
   mySQLiteAdapter.insert(name,email,phone,address);
   updateList();

 }

这是我的主要活动

  Button next = (Button) findViewById(R.id.add);
      EditText nametext = (EditText) this.findViewById(R.id.NameText);
      final String nt = nametext.getText().toString();
      EditText emailtext = (EditText) this.findViewById(R.id.MailText);
      final String et = emailtext.getText().toString();
      EditText phonetext = (EditText) this.findViewById(R.id.PhoneText);
      final String pt = phonetext.getText().toString();
      EditText addresstext = (EditText) this.findViewById(R.id.AddressText);
      final String at = addresstext.getText().toString();


        next.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {

                Intent myIntent = new Intent(getApplicationContext(), Activity2.class);
                myIntent.putExtra("name",nt);
                myIntent.putExtra("email",et);
                myIntent.putExtra("phone",pt);
                myIntent.putExtra("address",at);
                startActivity(myIntent);
            }

          });

这是我的queueAll函数:

 public Cursor queueAll(){
 String[] columns = new String[]{KEY_ID, COLUMN_NAME,
 COLUMN_EMAIL,COLUMN_PHONE,COLUMN_ADDRESS};

Cursor cursor = sqLiteDatabase.query(MYDATABASE_TABLE, columns,

null, null, null, null, null);

return cursor;

}

0 个答案:

没有答案