微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ListView Android Studio 中不显示项目

如何解决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 举报,一经查实,本站将立刻删除。