小编kar*_*arl的帖子

在Android上序列化Drawable对象

我正在尝试通过缓存图像来加速我的ListView,并在滚动列表时从手机而不是互联网加载它们.但是,当我尝试序列化Drawable对象时,我遇到了异常.这是我的功能:

    private void cacheImage(Drawable dr, Article a){
    FileOutputStream fos;
    try {
        fos = openFileOutput(a.getArticleId().toString(), Context.MODE_PRIVATE);
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        oos.writeObject(dr); 
        oos.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }catch(IOException e){
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

这段漂亮的代码导致:

java.io.NotSerializableException:android.graphics.drawable.BitmapDrawable

序列化这些图像的最佳方法是什么?

serialization android drawable

6
推荐指数
1
解决办法
4957
查看次数

Jquery Mobile Select不会重置

我正在用Jquery Mobile写一个网上商店,我想用一个选择菜单来浏览可用的类别.当用户选择一个类别时,我想导航到同一页面,但添加了一些参数到网址.这是我选择的标记:

  <asp:Repeater id="productCatSelect" runat="server">
                <HeaderTemplate>
                        <select id="productCatSelectMenu" data-native-menu="false" onchange="categoryClick();" class="button" data-theme="a">
                        <option data-placeholder="true">All Categories</option>
                </HeaderTemplate>
                <ItemTemplate>
                    <option value="<%# Eval("NodeID") %>" ><%# Eval("Description")%></option>
                </ItemTemplate>
                <FooterTemplate>
                    </select>
                </FooterTemplate>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)

这是javascript:

function categoryClick() {
    var mySelect = $("#productCatSelectMenu");
    if (mySelect.val() != '') {
        if (mySelect.val() == 0) {
            $.mobile.changePage("shop.aspx", {reloadPage: true, transition:"slide"});
        } else {
            $.mobile.changePage("shop.aspx?c=" + $("#productCatSelectMenu").val() + "&n=" + $('#productCatSelectMenu :selected').text(), {reloadPage: true, transition:"slide"});
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我导航一次并尝试从选择中选择另一个选项时,我的问题就出现了,我的javascript仍然会恢复之前的值; 选择似乎没有重置!但是,当我按下F5并手动重新加载页面时,菜单会再次运行,直到我当然使用它一次.

任何人对我如何解决这个问题都有任何想法?正如您在javascript中看到的那样,"reloadPage:true"属性无法解决问题.

jquery-mobile

3
推荐指数
2
解决办法
8054
查看次数

将 Blazor 客户端消费 Web API 与 Windows 身份验证结合使用

目前,我有一个与 Angular 客户端一起运行的应用程序,使用带有 Windows 身份验证的 Web API。

现在我正在考虑用 Blazor(客户端)替换这个前端,但是在身份验证方面我面临一些挑战。

在 Angular 中,我只是将 withCredentials 设置为 true 以便提交所需的信息。

下面的代码使用 Blazor 服务器端按预期工作,但由于我想使用 Blazor 客户端,这不是一个选项,对我没有太大帮助。


    IEnumerable<SearchView> searchResults;
    int NumberOfItems;

    protected override async Task OnInitAsync()
    {
        using (var client = new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true }))
        {
            var result = await client.GetJsonAsync<Response<SearchView>>("http://localhost:80/search");
            NumberOfItems = result.TotalItemCount;
            searchResults = result.Items;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码抛出“PlatformNotsupportedException”。

WASM:System.PlatformNotSupportedException:当前平台不支持 System.Net.Http.HttpClientHandler。WASM:位于 <4399d2484a2a46159ade8054ed94c78e> 中的 System.Net.Http.HttpClientHandler.set_UseDefaultCredentials (System.Boolean 值)<0x1d63160 + 0x0000c>:0

显然,使用 Blazor 客户端不支持提供的代码,但如果有任何替代方法可以实现我想要的目标,我们将不胜感激。

c# client-side blazor

3
推荐指数
1
解决办法
3078
查看次数