【发布时间】:2019-05-29 17:27:33
【问题描述】:
您好,我创建了一个数据库,我试图在列表视图中列出该数据库的名称,但没有显示任何内容。
mty 数据库的代码是:
public class LockedInDatabaseHelper extends SQLiteOpenHelper {
private static final String DB_NAME = "Locked In";
private static final int DB_VERSION = 1;
public LockedInDatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE ARTISTS (_id INTEGER PRIMARY KEY AUTOINCREMENT,"
+ "NAME TEXT,"
+ "INTRO TEXT,"
+"IMAGE_RESCOURCE_ID INT)");
insertArtist(db, "Jinx Inkz", "An artist who specializes in portraits and custom pieces", R.drawable.jinx_profile);
insertArtist(db, "Bazooka Zook", "An artist who specializes in clean line work and neo - traditional", R.drawable.zook_profile );
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
private static void insertArtist(SQLiteDatabase db, String name, String intro, int resourceId){
ContentValues artistInfo = new ContentValues();
artistInfo.put("NAME", name);
artistInfo.put("INTRO", intro);
artistInfo.put("IMAGE_RESOURCE_ID", resourceId);
db.insert("ARTISTS",null, artistInfo);
}
}
最后,我希望信息出现的地方的 java 代码是
public class ArtistsActivity extends AppCompatActivity {
private SQLiteDatabase db;
private Cursor cursor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_artists);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ListView listArtists = (ListView) findViewById(R.id.artistsLV);
SQLiteOpenHelper lockedInDatabaseHelper = new LockedInDatabaseHelper(ArtistsActivity.this);
try {
db = lockedInDatabaseHelper.getReadableDatabase();
cursor = db.query("ARTISTS",
new String[]{"_id", "NAME"},
null, null, null, null, null);
SimpleCursorAdapter listAdapter = new SimpleCursorAdapter(ArtistsActivity.this,
android.R.layout.simple_list_item_1,
cursor,
new String[]{"NAME"},
new int[] {android.R.id.text1},
0);
listArtists.setAdapter(listAdapter);
} catch (SQLiteException e) {
Toast toast = Toast.makeText(this, "Database unavailable", Toast.LENGTH_LONG);
toast.show();
}
//Create a listener for clicks on listview
AdapterView.OnItemClickListener itemClickListener =
new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> listArtists,
View itemView,
int position,
long id){
//Pass tha artist user clicks on to artistActivity
Intent intent = new Intent(ArtistsActivity.this, ArtistDetail.class);
intent.putExtra(ArtistDetail.EXTRA_ARTISTID, (int) id);
startActivity(intent);
}
};
//Assign the listener to list view
listArtists.setOnItemClickListener(itemClickListener);
}
@Override
public void onDestroy(){
super.onDestroy();
cursor.close();
db.close();
}
}
我一直在研究代码,但我认为它与 ListView 无关。请帮忙!我超级卡住了,我只想要一个列表,我可以添加一个 onClickListener 以继续应用程序。
【问题讨论】:
标签: android sqlite android-listview