如何解决ListView Android Studio 中不显示项目
我对 Android Studio 很陌生。我正在使用 webview。我想创建书签和历史列表。 我尝试了来自互联网的代码。 我仔细检查了我的编码,它看起来不错.. 在我的应用程序中,有一个菜单项用于将特定 url 添加到书签和单独的菜单项以在主活动中单击它时显示书签页面。 根据我的知识代码是正确的。但我看不到书签页面活动中添加的网址。 我尝试了互联网上提到的不同方法来解决这个问题..但对我来说没有任何效果..
我创建了一个“网站”类来获取 webview 的字符串 下面是类(“网站”)
public class websites
{
private int id;
private String url;
private String title;
private ImageView image;
public websites(String url)
{
this.url = url;
}
public websites(String url,String title)
{
this.url = url;
this.title = title;
}
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public String getUrl()
{
return url;
}
public void setUrl(String url)
{
this.url = url;
}
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}
public ImageView getimage()
{
return image;
}
public void setimage(ImageView image)
{
this.image = image;
}
}
这里是书签数据库的“mydbhandlerbook”类
public class mydbhandlerbook extends sqliteOpenHelper // For Bookmarks
{
private static final int DATABASE_VERSION =1;
private static final String DATABASE_NAME = "bookmark.db"; // name of the file
public static final String TABLE_NAME = "bookmarks"; // name of the table
public static final String COLUMN_ID = "column_id";
public static final String COLUMN_NAME = "url";
public mydbhandlerbook(@Nullable Context context,@Nullable String name,@Nullable sqliteDatabase.CursorFactory factory,int version)
{
super (context,DATABASE_NAME,factory,DATABASE_VERSION);
}
@Override
public void onCreate(sqliteDatabase db)
{
String query = "CREATE TABLE "+ TABLE_NAME +"("+ COLUMN_ID +" INTEGER PRIMARY KEY AUTOINCREMENT," +COLUMN_NAME +" TEXT "+")";
db.execsql (query);
}
@Override
public void onUpgrade(sqliteDatabase db,int oldVersion,int newVersion)
{
db.execsql ("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate (db);
}
/**
* Adding new raw to database
* @param website
*/
public void addurl(websites website)
{
ContentValues values = new ContentValues ();
values.put (COLUMN_NAME,website.getUrl ());
sqliteDatabase db = getWritableDatabase ();
db.insert (TABLE_NAME,null,values);
db.close ();
}
/**
* Deleting URL
*/
public void deleteurl(String url)
{
sqliteDatabase db = getWritableDatabase ();
db.execsql ("DELETE FROM "+ TABLE_NAME +" WHERE "+COLUMN_NAME+"=\""+url +"\";" );
}
/**
* Print out the History as String
*/
public List<String> databasetostring()
{
sqliteDatabase db = getWritableDatabase ();
String query = "SELECT * FROM "+ TABLE_NAME;
List<String> dbstring = new ArrayList<> ();
Cursor cursor = db.rawQuery (query,null);
cursor.movetoFirst ();
int i = 0;
if (cursor.movetoNext ())
{
do {
if (cursor.getString (cursor.getColumnIndex (COLUMN_NAME))!=null)
{
String bstring = "";
bstring += cursor.getString (cursor.getColumnIndex ("url"));
dbstring.add (bstring);
}
}while (cursor.movetoNext ());
}
return dbstring;
}
}
这里是“书签”活动
public class bookmarks extends AppCompatActivity
{
mydbhandlerbook bookmark = new mydbhandlerbook (this,1);
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate (savedInstanceState);
setContentView (R.layout.bookmarks);
final List<String> books = bookmark.databasetostring ();
if (books.size ()>0)
{
ArrayAdapter myadapter = new ArrayAdapter<String> (this,android.R.layout.simple_list_item_1,books);
ListView mylist = findViewById (R.id.bookmark_list);
mylist.setAdapter (myadapter);
mylist.setonItemClickListener (new AdapterView.OnItemClickListener ()
{
@Override
public void onItemClick(AdapterView<?> parent,View view,int position,long id)
{
String url = books.get (position);
//Intent intent = getParentActivityIntent ();//??
//intent.putExtra ("bookmark_url",url);
//startActivity (intent);
//finish ();
}
});
}
}
}
我在主要活动中放置了以下代码,
mydbhandlerbook bookmark = new mydbhandlerbook (this,1);
websites yandex = new websites ("yandex.com");
bookmark.addurl (yandex);
websites google = new websites ("google.com");
bookmark.addurl (google);
bookmark.addurl (baidu);
websites yahoo = new websites ("yahoo.com");
bookmark.addurl (yahoo);
当我单击工具栏菜单上的书签菜单项时,“书签”活动打开。显示列表视图..但不显示项目..
我不知道为什么它没有显示。 有人知道它可能是什么吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。