0

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

我正在从EditText字段中获取数据,但我将数据插入并显示在另一个activity. 我最初以为我没有从第一个活动中获取数据,但我确信我编写了正确的代码。

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

为什么我在那里看不到数据?这就是我获取数据并放入数据库和列表的方式:

   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;

}
4

0 回答 0