【问题标题】:Android Studio: Is there a way to change the text shown on an ArrayAdapter?Android Studio:有没有办法更改 ArrayAdapter 上显示的文本?
【发布时间】:2021-12-12 09:14:39
【问题描述】:

每当 ArrayAdapter 从数据库中获得所需的一切时,它都会创建每个按钮,我认为,数据库的每个位的内存位置。我说我认为是因为每次我在应用程序中来回切换页面时结构都会发生变化。我使用按钮让它工作,但该方法阻止我做其他事情,例如编辑和从数据库中删除,因为按钮本身没有所需的所有信息,因为它是一个按钮。 当我尝试使用 ArrayAdapters 时,这就是它目前所做的:

这就是我试图让它说的:

这是用于尝试创建 ArrayAdapter 的代码:

    void Testing() {
    DataBaseHelper databaseHelper = new DataBaseHelper(View_Products.this);
    List<ProductModel> allProductsFromType = databaseHelper.GetAllProductsFromType(productType);
    ArrayAdapter productArrayAdapter = new ArrayAdapter<ProductModel>(View_Products.this, android.R.layout.simple_list_item_1, allProductsFromType);
    lv_products_added.setAdapter(productArrayAdapter);

    lv_products_added.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

            Toast.makeText(View_Products.this, "Testing " + allProductsFromType.get(i).GetName(), Toast.LENGTH_SHORT).show();
        }
    });
}

这是数据库的代码:

public List<ProductModel> GetAllProductsFromType(String product_type) {
    List<ProductModel> products = new ArrayList<>();
    String queryString = "SELECT * FROM " + PRODUCT_TABLE + " WHERE " + COLUMN_PRODUCT_TYPE + " LIKE " + '\'' + product_type + '\'';
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(queryString, null);

    if (cursor.moveToNext()) {
        do {
            int productID = cursor.getInt(0);
            String productType = cursor.getString(1);
            String productName = cursor.getString(2);
            String productBrand = cursor.getString(3);

            ProductModel newProduct = new ProductModel(productID, productName, productBrand, productType);


            products.add(newProduct);
        }
        while (cursor.moveToNext());
    }
    cursor.close();
    db.close();
    return products;
}

关于我需要做什么才能获得理想结果的任何建议?提前致谢!

【问题讨论】:

标签: java android sqlite android-studio android-arrayadapter


【解决方案1】:
    public ArrayList<String> GetSingleProducts(String product_type) {
    List<ProductModel> products = new ArrayList<>();
    String queryString = "SELECT * FROM " + PRODUCT_TABLE + " WHERE " + COLUMN_PRODUCT_TYPE + " LIKE " + '\'' + product_type + '\'';
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(queryString, null);

    if (cursor.moveToNext()) {
        do {
            int productID = cursor.getInt(0);
            String productType = cursor.getString(1);
            String productName = cursor.getString(2);
            String productBrand = cursor.getString(3);
            products.add(productName );
        }
        while (cursor.moveToNext());
    }
    cursor.close();
    db.close();
    return products;
}


 

 void Testing() 
{
    DataBaseHelper databaseHelper = new DataBaseHelper(View_Products.this);
    ArrayList<String> allProductsFromType = databaseHelper.GetSingleProducts(productType);
    ArrayAdapter productArrayAdapter = new ArrayAdapter<String>(View_Products.this, android.R.layout.simple_list_item_1, allProductsFromType);
    lv_products_added.setAdapter(productArrayAdapter);

    lv_products_added.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

            Toast.makeText(View_Products.this, "Testing " + allProductsFromType.get(i), Toast.LENGTH_SHORT).show();
        }
    });
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 1970-01-01
    • 2023-01-20
    • 2023-01-29
    相关资源
    最近更新 更多