2015-05-14 38 views
1

我想將數據保存到數據庫中,並且必須在listview中顯示它。我能得到輸出,但它不是我需要它只是顯示URI.Kindly幫我怎樣才能讓我的COLUMN_NAME到ListView中適配器從DATABSEandroid studio中的數據庫和列表視圖

數據庫代碼:

public class DBHelper extends SQLiteOpenHelper { 
public static final String DATABASE_NAME = "Mydatabase"; 
public static final String TABLE_CONTACTS = "MyContacts"; 
public static final String COLUMN_NAME= "name"; 
public static final String COLUMN_NUMBER= "number"; 
public static final String COLUMN_EMAIL= "email"; 
public static final String COLUMN_CONTACT_ID = "id"; 

public static final String TABLE_GROUPS = "Groups"; 
public static final String COLUMN_GROUP_ID = "id"; 
public static final String COLUMN_GRPNAME= "name"; 
public static final String COLUMN_MEMBERS= "number"; 



public DBHelper(Context context) 
{ 
    super(context, DATABASE_NAME, null, 1); 
} 


@Override 
public void onCreate(SQLiteDatabase db) { 
    // TODO Auto-generated method stub 
    Log.d("INFO1","creating db"); 
    db.execSQL("create table " + TABLE_CONTACTS + 
      " (" + COLUMN_CONTACT_ID + " integer primary key, " + 
COLUMN_NAME + " text, " + COLUMN_NUMBER + " number, " + COLUMN_EMAIL + " 
text)"); 

} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS); 
    onCreate(db); 
} 



public boolean addcontact(Database_contacts database_contacts){ 
    SQLiteDatabase db = this.getWritableDatabase(); 
    ContentValues contentValues = new ContentValues(); 
    /*contentValues.put(COLUMN_CONTACT_ID, database_contacts.getId());*/ 
    contentValues.put(COLUMN_NAME, database_contacts.getName()); 
    contentValues.put(COLUMN_NUMBER, database_contacts.getNumber()); 
    contentValues.put(COLUMN_EMAIL, database_contacts.getEmail()); 

    db.insert(TABLE_CONTACTS, null, contentValues); 
    db.close(); 
    return true; 
} 

public List<Database_contacts> getAllcontactDetails() { 

    List<Database_contacts> contactList = new ArrayList<Database_contacts> 
(); 

    String selectQuery = "SELECT "+COLUMN_NAME+" FROM " + TABLE_CONTACTS; 

    SQLiteDatabase database = this.getWritableDatabase(); 
    Cursor cursor = database.rawQuery(selectQuery, null); 

    if(cursor.moveToFirst()) { 
     do { 
      Database_contacts dashboardDetails = new Database_contacts(); 

/*dashboardDetails.setId(Integer.parseInt(cursor.getString(0)));*/ 
      dashboardDetails.setName(cursor.getString(0)); 
      contactList.add(dashboardDetails); 
     } while (cursor.moveToNext()); 
    } 
    return contactList; 
} 

} 

contactsactivity代碼:

public class Contact extends MainActivity { 
Button addcontact; 
DBHelper database; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_contacts); 
    final ListView myList= (ListView) findViewById(R.id.listview); 
    database = new DBHelper(this); 
    List<Database_contacts> contactList = database.getAllcontactDetails(); 
    contactList.toArray(); 
    ArrayAdapter<Database_contacts> myAdapter=new 
ArrayAdapter<Database_contacts>(this, android.R.layout.simple_list_item_1, 
      contactList); 
    myList.setAdapter(myAdapter); 

    myList.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
           int position, long id) { 
      Toast.makeText(getApplicationContext(), 
        "Click ListItem Number " + position, Toast.LENGTH_LONG) 
        .show(); 
     } 
    }); 

    addcontact = (Button)findViewById(R.id.addcontact); 
    addcontact.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent intent = new 
Intent(getApplicationContext(),AddContact_activity.class); 
      startActivity(intent); 
     } 
    }); 
} 
} 
+0

烏爾的問題不是很清楚。你想在ListView中顯示什麼? –

+0

你想在listView中顯示名字? –

+0

是的,我已經提到上面本身我需要顯示COLUMN_NAME從數據庫到我的contactactivity類的contactlist –

回答

0

我認爲你需要使用從CursorAdapter的延伸,用於從數據庫中檢索數據的適配器,可能爲自定義(?),以及一些SQL語句。您對COLUMN_NAME意味着什麼,您想要顯示COLUMN_NAME的實際名稱(如「姓名」或其內容)嗎?

+0

是COLUMN_NAME是字段名稱,我在裏面存儲我的名字 –

相關問題